一.linux的用户管理命令
1.1 useradd命令
useradd
命令用于创建新用户账号。其名称useradd
是“User Add”的缩写,意为添加用户。
useradd
命令的基本语法:useradd [选项] 用户名
其中,[选项]
是可选的,可以使用不同的选项实现不同的功能。用户名
是要创建的用户账号的名称。
常用选项如下:
-
-d <目录>
:directory,指定用户的home路径.若不指定,则用户的home路径默认在:/home/用户名. -
-g <组名>
:group,指定用户所属的初始主组.若不指定,则自动创建同名组并加入.
1.2 userdel命令
userdel
命令用于删除 Linux 系统中的用户账号。其名称userdel
是“User Delete”的缩写,意为删除用户。
userdel
命令的基本语法:userdel [选项] 用户名
其中,用户名
是要删除的用户账号的名称
常用选项如下:
-
-r
:recursive,同时删除用户的主目录(家目录)和邮件目录。 -
-f
:force,强制删除用户,即使用户当前登录或者用户的进程仍在运行
使用 userdel
命令删除用户时,会删除用户账号信息,但默认情况下不会删除用户的主目录。如果想连同主目录一起删除,可以使用 -r
选项.
扩展分析:
删除的文件如下
- 用户基本信息:存储在 /etc/passwd 文件中;
- 用户密码信息:存储在 /etc/shadow 文件中;
- 用户群组基本信息:存储在 /etc/group 文件中;
- 用户群组密码信息:存储在 /etc/gshadow 文件中;
- 用户个人文件:主目录默认位于 /home/用户名,邮箱位于 /var/spool/mail/用户名。
1.3 passwd命令
passwd 命令用于设置用户的密码。其名称passwd 是“password”的缩写,意为“密码”。
passwd 命令的基本语法:passwd [选项] [用户名]
常用选项如下
-
-l
:lock,锁定用户账号,禁止用户登录。 -
-u
:unlock,解锁用户账号,允许用户登录。 -
-d
:delete,禁用用户密码,使用户无需密码即可登录。 -
-e
:expire,强制用户在下次登录时修改密码。 -
-S
:status,显示用户账号的密码状态信息。 -
-x <天数>
:expiredate,设置密码过期的天数。超过设定的天数后,用户需要修改密码。 -
-n <天数>
:mindays,设置密码最短有效期的天数,即密码必须至少保持一定天数后才能修改。 -
-i <天数>
:inactive,设置密码最长有效期的天数,即密码在指定天数后必须修改。 -
-w <天数>
:warndays,提前给用户发出密码过期警告的天数。
1.4 chage 命令
chage
命令用于修改用户的密码过期信息。它允许管理员更改用户的密码过期时间、密码失效时间、账户锁定时间等。
chage 命令的基本语法:chage [选项] 用户名
其中,[选项]
是可选的,用于指定要修改的选项,用户名
是要修改的用户的用户名。
常用选项如下:
-
-l
:list,显示指定用户的密码过期信息。 -
-d <日期>
:lastday,设置用户的密码最近一次更改的日期。日期格式为 YYYY-MM-DD。 -
-E <日期>
:expiredate,设置用户的账户失效日期。日期格式为 YYYY-MM-DD。 -
-M <天数>
:maxdays,设置用户的密码有效期,即密码必须更改的天数间隔。 -
-I <天数>
:inactive,设置用户的账户锁定时间,即在密码过期后多少天内禁止用户登录。 -
-m <天数>
:mindays,设置用户的密码过期前的警告天数,即在密码过期前多少天提醒用户更改密码。
1.5 usermod
命令
usermod
命令是用于修改用户账户的属性。它可以修改用户的用户名、用户ID、用户所属的主组、用户的家目录、用户的登录Shell等属性。其名称usermod
是“User Modify”的缩写,意为“用户修改”。
usermod
命令的基本语法:usermod [选项] 用户名
其中,选项
是可选的,用于指定要修改的属性,用户名
是要修改的用户账户名称。
常用选项如下:
-
-l
:login,修改用户名,即将用户的登录名称修改为新的名称。 -
-u
:uid,修改用户ID,即将用户的唯一标识符修改为新的数值。 -
-g
:gid,修改用户的主组,即将用户所属的主组修改为新的组。 -
-d
:home,修改用户的家目录,即将用户的家目录路径修改为新的路径。 -
-s
:shell,修改用户的登录Shell,即将用户的默认 /bin/bash修改为新的Shell。 -
-aG
:append groups,添加用户到附加组,即将用户添加到指定的附加组。
1.6 id命令
id
命令是用于显示当前用户或指定用户的用户身份信息。其名称id是“identity”的缩写,意为“身份”。
id
命令的基本语法:id [选项] [用户名]
其中,[选项]
是可选的,可以使用不同的选项来实现不同的功能,[用户名]
是要显示身份信息的用户的用户名。如果不指定用户名,则默认显示当前用户的身份信息。
常用选项如下:
-
-u
:user,显示用户的用户ID(UID)。 -
-g
:group,显示用户所属的初始主组ID(GID)。 -
-G
:groups,显示用户所属的附加组ID(以逗号分隔的列表)。 -
-n
:name,以用户名称而不是用户ID显示。 -
-r
:real,显示实际用户ID(即root用户)。 -
-a
:all,显示当前用户的所有身份信息。
1.7 su命令
su
命令是在 Linux 中切换用户身份的命令.其名称su是“Switch User”的缩写,意为“切换用户”。
su命令的基本语法:su [选项] [用户名]
其中,[选项]
是可选的,可以使用不同的选项实现不同的功能,[用户名]
是要切换到的目标用户的用户名。
常用选项如下:
- -:当前用户不仅切换为指定用户的身份,同时所用的工作环境也切换为此用户的环境(包括 PATH 变量、MAIL 变量等),使用 - 选项可省略用户名,默认会切换为 root 用户。
- -l:login,同 - 的使用类似,也就是在切换用户身份的同时,完整切换工作环境,但后面需要添加欲切换的使用者账号。
- -p:preserve environment,表示切换为指定用户的身份,但不改变当前的工作环境(不使用切换用户的配置文件)。
- -c <命令>:command,仅切换用户执行一次命令,执行后自动切换回来,该选项后通常会带有要执行的命令。
普通用户之间切换以及普通用户切换至 root 用户,都需要知晓对方的密码,只有正确输入密码,才能实现切换;从 root 用户切换至其他用户,无需知晓对方密码,直接可切换成功。
1.8 groupadd命令
groupadd
命令是用于在 Linux 系统中创建一个新的用户组。其名称groupadd是“Group Add ”的缩写,意为“添加用户组”。
groupadd
命令的基本语法:groupadd [选项] 组名
其中,选项
是可选的,可以使用不同的选项来实现不同的功能,组名
是要创建的用户组的名称。
常用选项如下:
-
-g GID
:gid,指定用户组的 GID(Group ID)。如果未指定该选项,则系统会自动分配一个可用的 GID。 -
-r
:system,创建一个系统用户组。 -
-f
:force,强制创建用户组,即使用户组名称已存在。
1.9 groupdel命令
groupdel 命令是用于删除 Linux 系统中的用户组.其名称groupdel是“Group Delete ”的缩写,意为“删除用户组”。
groupdel 命令的基本语法:groupdel [选项] 组名
其中,[选项] 是可选的,可以使用不同的选项来实现不同的功能。组名是要删除的用户组的名称。
常用选项如下:
- -f:force,强制删除用户组,即使该组有用户属于它。
- -r:force,同时删除关联的用户组的文件。
1.10 groupmod命令
groupmod命令是用于修改用户组的属性和设置。其名称groupdel是“Group Modify ”的缩写,意为“组修改”。
groupmod 命令的基本语法:groupdel [选项] 组名
常用选项如下:
-
-g GID
:GID(Group ID),设置用户组的GID(Group ID)。指定一个数字作为新的GID。 -
-n 新组名
:Group Name,修改用户组的名称。 -
-o
:Allow Duplicate GID,允许使用非唯一的GID。通常与-g
选项一起使用。 -
-p 密码
:Password,设置用户组的密码。密码应该是已经加密的。 -
-R 根目录
:Restricted,指定根目录,用于指定非默认的根目录。 -
-P
:Pre-Existing Group,在密码字段中存储指定的密码,而不是提示用户输入密码。 -
-A 用户列表
:Administrators,指定附加到用户组的用户列表。用户列表以逗号分隔。
1.11 gpasswd命令
gpasswd
命令是用于管理组。其名称gpasswd
是“Group Password ”的缩写,意为“组密码”。
gpasswd
命令的基本语法:groupdel [选项] 组名
常用选项如下:
-
-a
:add,添加用户到组中。 -
-d
:delete,从组中删除用户。 -
-r
:remove,移除组的密码。 -
-A
:administrators,设置组的管理员(Administrators)。 -
-M
:members,设置组的成员列表。
1.12newgrp
命令
newgrp
命令是用于切换当前用户的有效组ID(GID),它允许用户在当前会话中切换到不同的组。
其名称newgrp
是“New Group”的缩写,意为“新建组”.
newgrp
命令的基本语法:newgrp [组名]
如果不指定组名,则将用户切换到其默认组。切换组后,用户将获得新组的权限和访问权限。需要注意的是,用户只能切换到其所属的组或者是作为附加组的组。且newgrp
命令只对当前会话生效,不会在新的终端会话中保持有效。要在全局范围内更改用户组,请使用su
命令。
补充
要查看所有用户和组,可以使用以下命令:
- 查看所有用户:使用命令
cat /etc/passwd
或getent passwd
- 查看所有组:使用命令
cat /etc/group
或getent group
其中getent
是“get entries ”的缩写,意为“获取条目”;cat
是“concatenate ”的缩写,意为“连接”.
二.linux的权限设置命令
2.1 ls命令之权限模块
其中① 表示文件类型.
- - 为普通文件;
- d为文件夹(目录) ;
- l为软链接(符号链接);
注释:
软链接(符号链接,symlink)是一个指向另一个文件或目录的路径,软链接类似于Windows操作系统中的快捷方式。
硬链接(Hard Link)是创建一个指向现有文件的新链接,链接类似于Windows操作系统中的复制方式。
②表示权限
- 读取权限(r):允许用户读取文件的内容,即查看文件的内容。
- 写入权限(w):允许用户修改或编辑文件,包括写入、追加或删除文件的内容。
- 执行权限(x):允许用户执行文件,即作为可执行程序运行。
扩展分析
ls命令命令输出模块,除了上述的权限模块,依次为以下模块.
-
硬链接数模块:显示与文件或目录关联的硬链接数。
-
所有者模块:显示文件或目录的所有者。
-
群组模块:显示文件或目录所属的群组。
-
文件大小模块:显示文件的大小,通常以字节为单位。对于目录,此字段显示目录本身的大小。
-
修改日期和时间模块:显示文件或目录的最后修改日期和时间。
-
文件/目录名称模块:显示文件或目录的名称.
2.2 chmod命令
chmod命令是用于修改文件或目录的权限。其名称chmod是“Change Mode ”的缩写,意为“更改模式”。
chmod 命令的基本语法:chmod [选项] 模式 文件名
常用选项如下:
-R
:递归地应用权限更改到目录及其子目录和文件。
常见的模式格式有两种:符号模式和数字模式
(1)符号模式(Symbolic Mode): 符号模式使用符号来表示权限的增加或减少。
其基本格式 : chmod 用户 符号 权限 文件名
(2)数字模式(Numeric Mode): 数字模式使用三位八进制数表示权限的组合。每个数字表示一组权限,按照顺序分别是所有者权限、所属组权限和其他用户权限。
其基本格式: chmod 数字1数字2数字3 文件名
数字 |
含义 |
0 |
无任何权限,即 --- |
1 |
仅有x权限,即 --x |
2 |
仅有w权限,即 -w- |
3 |
仅有w和x权限,即 -wx |
4 |
仅有r权限,即 r-- |
5 |
仅有r和x权限,即 r-x |
6 |
仅有r和w权限,即 rw- |
7 |
有全部权限,即 rwx |
2.2 chgrp命令
chgrp命令是用于更改文件或目录的所属组.其名称chgrp是“Change Group”的缩写,意为“更改组”。
chgrp命令的基本语法: chgrp [选项] 组名 文件或目录
常用选项如下:
-R:递归地修改指定目录及其子目录下的文件所属组。
2.3 chown命令
chown命令是用于更改文件或目录的所有者和所属组.其名称chown是“Change Owner”的缩写,意为“更改所有者”。
chown命令的基本语法: chown [选项] 用户名[:组名] 文件或目录
常用选项如下:
-R:递归地修改指定目录及其子目录下的文件所属组。
2.4 sudo命令
sudo命令用于以超级用户或其他指定用户的身份执行命令。其名称sudo是“Superuser Do”的缩写,意为“以超级用户执行”。
sodo命令的基本语法: sudo [选项] 命令
常用选项如下:
- -u 用户名:User,以指定用户的身份执行命令。
- -i:Login,以root用户的身份登录并执行命令,类似于在root用户下使用sudo执行命令。
- -s:Shell,以root用户的身份执行命令,但保留当前用户的环境变量。
- -l:List,列出当前用户可以执行的sudo命令列表。
- -v:Validate,在一段时间内刷新sudo的授权,避免在执行多个sudo命令时重复输入密码。
扩展分析:
当用户运行 sudo
命令时,通常会经历以下步骤:
- 用户运行
sudo
命令,系统会先检查/etc/sudoers
文件,验证该用户是否具有运行sudo
命令的权限。该文件定义了哪些用户或用户组可以以超级用户的身份运行命令。 - 如果用户被授权运行
sudo
命令,系统会要求用户输入自己的密码进行验证。为了安全考虑,密码输入时不会显示在屏幕上。 - 输入密码后,系统会验证密码的正确性。如果密码验证成功,系统将在一定时间内(默认为 5 分钟)将用户标记为经过身份验证的状态,这意味着用户在此时间段内不需要再次输入密码即可执行其他
sudo
命令。 - 验证成功后,系统以超级用户(root)身份执行用户指定的命令。
- 命令执行完成后,结果将返回给用户。
在 Linux 系统中,/etc/sudoers
文件用于配置 sudo
命令的权限设置。修改该文件可以添加用户权限或修改现有的权限设置。但是需要特别注意,在修改 /etc/sudoers
文件之前,不建议使用vim,而是使用 visudo
命令来编辑该文件,离开修改页面时,系统会自行检验 /etc/sudoers 文件的语法,以确保语法正确性和避免可能的问题。
下面是对 /etc/sudoers
文件的修改、添加用户权限设置的一般步骤和解析:
(1)执行以下命令以编辑 /etc/sudoers
文件.
[root@hadoop01 ~]# sudo visudo
(2)按向下箭头("↓")进行查找,定位到以下该配置部分.
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
参数 | 含义 |
root ALL=(ALL) ALL |
|
%wheel ALL=(ALL) ALL |
|
#%wheel ALL=(ALL) NOPASSWD: ALL |
|
(3)添加新的用户权限设置.
添加用户权限或修改现有的权限基本格式: username host=(user:group) command
-
username
:要授予权限的用户名。 -
host
:可选参数,指定可以运行命令的主机名。 -
user:group
:可选参数,指定可以以哪个用户和用户组的身份运行命令。 -
command
:指定可以运行的命令或命令集合。
在 visudo
编辑器中,按键" i "进入编辑模式.在"root ALL=(ALL) ALL"这列下面添加
"用户名 ALL=(ALL) ALL" ,再按ESC返回,并输入":wq "保存并退出文件。
文章来源:https://uudwc.com/A/GdpXN
部分详情请参考:http://c.biancheng.net/view/851.html文章来源地址https://uudwc.com/A/GdpXN