Linux2 —— 用户与权限
用户类型
超级用户 root:有最高的权限,可以对Linux做任何操作
普通用户:没有对系统的完全控制权,而且用户之间私人资源是相互隔离的
系统用户:与系统和程序服务相关的用户,默认情况下无法登录,设置用户授权登陆口令后可以登录
用户信息文件 passwd
/etc/passwd
-
每一行存储一个用户的账号信息
-
用户名:加密密码:用户ID:用户组ID:用户信息:用户主目录:登录Shell
1
2
3
4
5root:x:0:0:root:/root:/bin/bash #/bin/bash 可以登录 Shell
bin:x:1:1:bin:/bin:/sbin/nologin # /sbin/nologin 不可以登录 Shell
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin -
root 的 UID 是 0,系统用户的UID < 1000,普通用户的UID > 1000
口令文件 shadow
/etc/shadow
每一行存储一个用户的信息,只有 root 用户才能读取这个文件
用户名:加密口令:上次更新时间:允许更改时间:要求更改时间:取消口令之前的警告时间:取消和停用之间的时间:账户口令的天数:账户终止时间:特殊标志
1 | ==> /etc/shadow <== |
组信息文件 group
/etc/group
每一行记录系统中的用户组信息
组名:密码字段:用户组 ID :用户名列表(用冒号分隔多个用户名)
1 | ==> /etc/group <== |
默认情况下,创建用户的时候,系统会自动创建一个同名的组,作为该用户的主组。
Command: useradd
新增用户
格式: useradd [选项] 用户名
参数 | 作用 |
---|---|
-d dirName | 指定用户主目录。默认将会在/home目录下新建一个与用户名相同的用户主目录 |
-s shellName | 指定用户登录时使用的shell。默认为/bin/sh |
-g groupName | 指定用户所属的组名。创建用户时默认创建一个与用户名同名的组作 |
-G groupList | 一个用户可以属于一个组,也可以属于多个组。用户创建时属于的组称为主组,其他的叫附属组。 |
-u uid | 指定新用户的UID。新用户默认UID为当前最高UID值+1 |
1 | useradd -d /home/user1024 -u 1024 -G user1 user2 |
Command: passwd
修改密码
格式:passwd [用户名]
普通用户只能修改自己密码,root可以修改其他用户的密码
Command: usermod
修改用户属性
格式:usermod [选项] 用户名
参数 | 作用 |
---|---|
-d dirName | 指定用户主目录。默认将会在/home目录下新建一个与用户名相同的用户主目录 |
-s shellName | 指定用户登录时使用的shell。默认为/bin/sh |
-g groupName | 指定用户所属的新主组 |
-G groupList | 一个用户可以属于一个组,也可以属于多个组。用户创建时属于的组称为主组,其他的叫附属组。 |
-u uid | 指定新用户的UID。新用户默认UID为当前最高UID值+1 |
1 | usermod -d /home/user2048 user2 |
Command: userdel
删除用户
格式:userdel [-r] 用户名
使用 -r
可以删除与用户相关的所有文件,如 home、log、email 。
Command: groupadd
增加用户组
格式:groupadd [-g] 组名
使用 -g
指定用户组
Command: groupdel
1 | groupdel 组名 |
Command: chmod
改变指定目录或文件的权限
格式:chmod [-R] 权限模式 路径
使用 -R
递归修改文件夹内所有子目录和文件的权限。
修改对象
-
u 表示该文件的拥有者
-
g 表示同组用户
-
o 表示其他以外的人
-
a 表示这三者皆是
修改行为:
- + 表示增加权限
- - 表示取消权限
- = 表示唯一设定权限
权限:
- r 读取
- w 写入
- x 执行
1 | chmod o=r,u=w,g=x a.txt |

Command: chown
改变指定目录或文件的所属用户、所属组
格式:chown [-R] 用户名[:组名] 路径
Command: chgrp
改变指定目录或文件的所属组。
格式:chgrp [-R] 组名 路径