一.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 [选项] 用户名

其中,用户名 是要删除的用户账号的名称

常用选项如下:

  • -rrecursive,同时删除用户的主目录(家目录)和邮件目录。
  • -fforce,强制删除用户,即使用户当前登录或者用户的进程仍在运行

使用 userdel 命令删除用户时,会删除用户账号信息,但默认情况下不会删除用户的主目录。如果想连同主目录一起删除,可以使用 -r 选项.

扩展分析:

删除的文件如下

  • 用户基本信息:存储在 /etc/passwd 文件中;
  • 用户密码信息:存储在 /etc/shadow 文件中;
  • 用户群组基本信息:存储在 /etc/group 文件中;
  • 用户群组密码信息:存储在 /etc/gshadow 文件中;
  • 用户个人文件:主目录默认位于 /home/用户名,邮箱位于 /var/spool/mail/用户名。

1.3 passwd命令

passwd 命令用于设置用户的密码。其名称passwd 是“password”的缩写,意为“密码”。

passwd 命令的基本语法:passwd [选项] [用户名]

常用选项如下

  • -llock,锁定用户账号,禁止用户登录。
  • -uunlock,解锁用户账号,允许用户登录。
  • -ddelete,禁用用户密码,使用户无需密码即可登录。
  • -eexpire,强制用户在下次登录时修改密码。
  • -Sstatus,显示用户账号的密码状态信息。
  • -x <天数>expiredate,设置密码过期的天数。超过设定的天数后,用户需要修改密码。
  • -n <天数>mindays,设置密码最短有效期的天数,即密码必须至少保持一定天数后才能修改。
  • -i <天数>inactive,设置密码最长有效期的天数,即密码在指定天数后必须修改。
  • -w <天数>warndays,提前给用户发出密码过期警告的天数。

1.4 chage 命令

chage 命令用于修改用户的密码过期信息。它允许管理员更改用户的密码过期时间、密码失效时间、账户锁定时间等。

chage 命令的基本语法:chage [选项] 用户名

其中,[选项] 是可选的,用于指定要修改的选项,用户名 是要修改的用户的用户名。

常用选项如下:

  • -llist,显示指定用户的密码过期信息。
  • -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 [选项] 用户名

其中,选项 是可选的,用于指定要修改的属性,用户名 是要修改的用户账户名称。

常用选项如下:

  • -llogin,修改用户名,即将用户的登录名称修改为新的名称。
  • -uuid,修改用户ID,即将用户的唯一标识符修改为新的数值。
  • -ggid,修改用户的主组,即将用户所属的主组修改为新的组。
  • -dhome,修改用户的家目录,即将用户的家目录路径修改为新的路径。
  • -sshell,修改用户的登录Shell,即将用户的默认 /bin/bash修改为新的Shell。
  • -aGappend groups,添加用户到附加组,即将用户添加到指定的附加组。

1.6 id命令

id 命令是用于显示当前用户或指定用户的用户身份信息。其名称id是“identity”的缩写,意为“身份”。

id 命令的基本语法:id [选项] [用户名]

其中,[选项] 是可选的,可以使用不同的选项来实现不同的功能,[用户名] 是要显示身份信息的用户的用户名。如果不指定用户名,则默认显示当前用户的身份信息。

常用选项如下:

  • -uuser,显示用户的用户ID(UID)。
  • -ggroup,显示用户所属的初始主组ID(GID)。
  • -Ggroups,显示用户所属的附加组ID(以逗号分隔的列表)。
  • -nname,以用户名称而不是用户ID显示。
  • -rreal,显示实际用户ID(即root用户)。
  • -aall,显示当前用户的所有身份信息。

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 GIDgid,指定用户组的 GID(Group ID)。如果未指定该选项,则系统会自动分配一个可用的 GID。
  • -rsystem,创建一个系统用户组。
  • -fforce,强制创建用户组,即使用户组名称已存在。

1.9 groupdel命令

groupdel 命令是用于删除 Linux 系统中的用户组.其名称groupdel是“Group Delete ”的缩写,意为“删除用户组”。

groupdel 命令的基本语法:groupdel [选项] 组名

其中,[选项] 是可选的,可以使用不同的选项来实现不同的功能。组名是要删除的用户组的名称。

常用选项如下:

  • -f:force,强制删除用户组,即使该组有用户属于它。
  • -r:force,同时删除关联的用户组的文件。

1.10 groupmod命令

groupmod命令是用于修改用户组的属性和设置。其名称groupdel是“Group Modify ”的缩写,意为“组修改”。

groupmod 命令的基本语法:groupdel [选项] 组名

常用选项如下:

  • -g GIDGID(Group ID),设置用户组的GID(Group ID)。指定一个数字作为新的GID。
  • -n 新组名Group Name,修改用户组的名称。
  • -oAllow Duplicate GID,允许使用非唯一的GID。通常与-g选项一起使用。
  • -p 密码Password,设置用户组的密码。密码应该是已经加密的。
  • -R 根目录Restricted,指定根目录,用于指定非默认的根目录。
  • -PPre-Existing Group,在密码字段中存储指定的密码,而不是提示用户输入密码。
  • -A 用户列表Administrators,指定附加到用户组的用户列表。用户列表以逗号分隔。

1.11 gpasswd命令

gpasswd命令是用于管理组。其名称gpasswd是“Group Password ”的缩写,意为“组密码”。

gpasswd 命令的基本语法:groupdel [选项] 组名

常用选项如下:

  • -aadd,添加用户到组中。
  • -ddelete,从组中删除用户。
  • -rremove,移除组的密码。
  • -Aadministrators,设置组的管理员(Administrators)。
  • -Mmembers,设置组的成员列表。

1.12newgrp命令

newgrp命令是用于切换当前用户的有效组ID(GID),它允许用户在当前会话中切换到不同的组。

其名称newgrp是“New Group”的缩写,意为“新建组”.

newgrp命令的基本语法:newgrp [组名]

如果不指定组名,则将用户切换到其默认组。切换组后,用户将获得新组的权限和访问权限。需要注意的是,用户只能切换到其所属的组或者是作为附加组的组。且newgrp命令只对当前会话生效,不会在新的终端会话中保持有效。要在全局范围内更改用户组,请使用su命令。

补充

要查看所有用户和组,可以使用以下命令:

  • 查看所有用户:使用命令 cat /etc/passwdgetent passwd
  • 查看所有组:使用命令 cat /etc/groupgetent group

其中getent是“get entries​​​​​​ ”的缩写,意为“获取条目”;cat 是“concatenate ”的缩写,意为“连接”.

二.linux的权限设置命令

2.1 ls命令之权限模块

linux窗口
linux窗口

其中① 表示文件类型.

  • - 为普通文件;
  • 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

root: 表示该配置适用于 root 用户。

ALL=(ALL): 表示 root 用户可以作为任何用户身份执行命令。

ALL: 表示 root 用户可以在任何位置执行命令(需输入密码)。

%wheel  ALL=(ALL)  ALL

%wheel: 表示该配置适用于 wheel 组的成员。

ALL=(ALL): 表示 wheel 组的成员可以作为任何用户身份执行命令。

ALL: 表示 wheel 组的成员可以在任何位置执行命令(需输入密码)。

#%wheel  ALL=(ALL)  NOPASSWD: ALL

%wheel: 表示该配置适用于 wheel 组的成员。

ALL=(ALL): 表示 wheel 组的成员可以作为任何用户身份执行命令。

NOPASSWD: ALL: 表示 wheel 组的成员在执行命令时无需输入密码。

(3)添加新的用户权限设置.

添加用户权限或修改现有的权限基本格式: username host=(user:group) command

  • username:要授予权限的用户名。
  • host:可选参数,指定可以运行命令的主机名。
  • user:group:可选参数,指定可以以哪个用户和用户组的身份运行命令。
  • command:指定可以运行的命令或命令集合。

visudo 编辑器中,按键" i "进入编辑模式.在"root  ALL=(ALL)  ALL"这列下面添加

"用户名  ALL=(ALL)  ALL" ,再按ESC返回,并输入":wq "保存并退出文件。

 

部分详情请参考:http://c.biancheng.net/view/851.html

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐