目录
一、用户账号与组账号
1.用户账户
用户账号:它存了用户账号的基本信息。包含了用户名、用户ID、、用户描述、家目录路径、登录Shell等信息
文件位置:存储在/etc/passwd 文件中
(每一行对应一个用户的账号记录)
管理员用户:是拥有系统最高管理权限的用户账号,登录后会显示#,root用户(管理员用户)可以执行系统上的任何操作,包括创建、删除和修改用户账户、安装软件、修改系统配置等。
普通用户:在系统中具有受限权限的用户账号,登录后显示$,通常只能访问其自己的文件和一些系统资源,不能执行一些关键的系统管理任务。
程序用户:在系统中专门用于运行服务和程序的用户账号,程序用户通常不会用于登录系统交互式地执行任务,而是用于执行特定的系统服务或程序。
2.组账户
组账号文件:
/etc/group:保存了组账户的基本信息,每一行对应一个组账户记录
/etc/gshadow:保存了组账户的密码信息,只有特权用户如root用户才能读取和修改这个文件。
基本组(私有组):是与用户账户直接关联的组,通常是在创建用户时指定的默认组。基本组信息通常存储在 /etc/passwd
附加组(公共组):是用户除了基本组以外,额外添加的指定组
二、添加用户账号-useradd
语法形式
useradd 【选项】 用户名
在/etc/passwd 文件和/etc/shadow 文件的末尾增加该用户账号的记录。 若未明确指定用户的宿主目录,则在/home目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。 若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group 和/etc/gshadow 文件中。
useradd常用选项
-u:指定用户的UID(用户ID)。
sudo useradd -u 1001 username
建一个名为 username 的用户,并将其UID设置为 1001 👆
-g:指定用户的基本组名或GID(基本组ID)。
sudo useradd -g groupname username
创建一个名为 username 的用户,并将其添加到名为 groupname 的基本组中👆
-G:指定用户的附加组名或GID(附加组ID)。
sudo useradd -G groupname1,groupname2 username
创建一个名为 username 的用户,并将其添加到名为 groupname1 和 groupname2 的附加组中👆
-d:指定用户的家目录路径。
sudo useradd -d /home/username username
创建一个名为 username 的用户,并将其家目录路径设置为 /home/username👆
-s:指定用户的登录Shell。
sudo useradd -s /bin/bash username
创建一个名为 username 的用户,并将其登录Shell设置为 /bin/bash 👆
-M:不创建用户的家目录。通常与 -d 选项一起使用,用于指定用户的家目录路径,但不实际创建家目录。
sudo useradd -M username
创建一个名为 username 的用户,但不会创建他的家目录 👆
三、更改用户命令-passwd
语法形式
passwd 【选项】 用户名
root用户可以指定用户名作为参数,对指定账号的密码进行管理;不指定用户名时,修改当前账号的密码
普通用户却只能执行单独的“passwd”命令修改自己的密码,也可以用下面这两条命令
echo "密码" | passwd --stdin 用户名
echo <用户名>:<密码> | chpasswd
常见命令以及示范
1.清空用户密码:-d
passwd -d [用户名]
会清空指定用户的密码,使其成为空密码
2.锁定/禁用用户:-l
passwd -l [用户名]
会将指定用户的密码锁定,禁止用户使用密码登录系统
3.解锁用户-u
passwd -u [用户名]
会解锁之前被锁定的用户账号,允许用户使用密码登录系统
4.查看锁定状态:-S
passwd -S [用户名]
会显示指定用户账号的锁定状态,包括密码是否被锁定以及密码是否过期等信息
四、修改用户账号的属性-usermod
语法形式
usermod 【选项】 用户名
usermod的常用命令👇
1.修改用户的UID:-u
usermod -u #修改用户的UID(用户ID)
2.修改用户的基本组:-g
usermod -g #修改用户的基本组
3.修改用户的附加组:-G
usermod -G #修改用户的附加组
4.修改用户的家目录路径:-d
usermod -d #修改用户的家目录路径
5.修改用户的登录Shell :-s
usermod -s #修改用户的登录Shell
6. 修改用户的账户失效时间:-e
usermod -e 2024-12-31 username
将用户名为 username 的用户账户的失效日期设置为 2024 年 12 月 31 日。用户在这个日期后将无法登录系统。(日期的格式为 YYYY-MM-DD)
7.更改用户账号的登录名称:-l
Usermod -l #更改用户账号的登录名称
8.锁定用户账户:-L
Usermod -L #锁定用户账户
9.解锁用户账户:-U
Usermod -U #解锁用户账户
五、删除用户账号-userdel
语法形式👇
userdel [选项] 用户名 #删除用户账户
userdel -r 用户名 #删除用户账户的同时删除用户的家目录和邮件邮箱
六、添加组账号-groupadd
1.语法形式
groupadd 【-g GID】 组账号名
普通用户的 GID 号:1000~60000
程序用户账号的 GID 号:默认范围为 1 ~ 999
gpasswd -a john developers
↑把用户 john 加入到 developers 组中。
七、添加删除组成员-gpasswd
gpasswd命令用于管理用户组的密码(组密码)和组成员,允许管理员修改组密码、添加或删除组成员等操作。
gpasswd 【选项】 组账号名 #设置组帐号密码(极少用)、添加/删除组成员
-a | 将指定的用户添加到指定的组 |
-d | 从指定的组中删除指定的用户。 |
-M | 指定一组用户作为组的成员。 |
gpasswd -a john developers
👆把用户 john
加入到 developers
组中。
gpasswd -d john developers
👆从 developers
组中删除用户 john
。
gpasswd -M john,jane,alice developers
👆将 john
、jane
和 alice
设置为 developers
组的成员。
八、删除组账号-groupdel
groupdel命令会从系统中彻底删除指定的组,同时也会删除与该组相关的用户组ID(GID)等信息
groupdel [选项] 组名
举个🌰👇
groupdel examplegroup
删除名为 examplegroup
的用户组
九、查询账号信息
-groups、id、finger、w、who、users
groups [用户名] #显示当前用户所属的用户组
id [用户名] #显示当前用户的 UID、GID 以及所属的其他用户组的信息
finger [用户名] #显示指定用户的信息
w、who、users #这些命令可以在终端中直接使用,用于查询用户账号相关信息
十、设置文件和目录的权限-chmod
查看文件和目录的权限和归属👇
权限项 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
字符表示 | r | w | x | r | w | x | r | w | x |
数字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
权限分配 | 文件所有者 | 文件所属者 | 其他用户 |
语法形式👇
chmod [u|g|o|a] [+|-|=] [r|w|x] 文件或目录
[u|g|o|a]:
表示用户类别,可以是单个字符 u
(属主)、g
(属组)、o
(其他用户)或 a
(所有用户)
[+|-|=]
:表示操作,可以是 +
(增加权限)、-
(去除权限)或 =
(设置权限)
[r|w|x]
:表示权限,可以是单个字符 r
(读权限)、w
(写权限)、x
(执行权限)
文件或目录
:表示要修改权限的文件或目录名称。
常用选项👇
-R
:递归修改权限,包括目录下的所有文件和子目录
举🌰环节👇
chmod 644 example.txt
将文件 example.txt
的权限设置为所有者可读写,同组用户只读,其他用户只读
chmod -R 755 example_dir
example_dir
及其所有子目录和文件的权限设置为所有者可读写执行,同组用户可读执行,其他用户只读执行
chmod +x script.sh
文件 script.sh
的权限添加可执行权限给所有用户
十一、设置文件和目录的归属-chown
chown [-R] 属主 文件/目录
chown [-R] :属组 文件/目录
chown [-R] 属主:属组 文件/目录
chown [-R] 属主.属组 文件/目录
-R:递归修改指定目录下所有文件、子目录的归属
十二、设置目录和文件的默认权限-umask
每个新创建的文件和目录都有一个默认的权限。umask
命令用于设置这个默认权限,它会从文件和目录的初始权限中减去掩码值,从而确定最终的默认权限 。
语法:
umask [新掩码]
举🌰🌰
umask 022 #将当前用户的 umask 设置为 022
普通文件的默认最大权限是 666(rw-rw-rw-)
目录的默认最大权限是 777(rwxrwxrwx)
新建的文件或者目录的权限为默认最大权限减去umask
(举个🌰umask 设置为 022
,则新创建的普通文件的权限将是 666 - 022 = 644
,新创建的目录的权限将是 777 - 022 = 755
。)