Linux基于用户身份对资源访问进行控制
用户账户:
超级用户:root
普通用户
程序用户:维持程序正常运行,保障程序运行的最近条件。
组账号:
基本组(私有组)
附加组(共有组)
UID和GID
UID(User Identity,用户标识号)
root用户为0,程序用户1~499,普通用户500~65534
GID(Group Identify,组表示号)
用户账户文件/etc/passwd
文件位置:/etc/passwd
每一行对应一个用户的账户记录cat /etc/passwd
添加用户账户
useradd命令
格式
useradd [选项] 用户名
常用命令选项
-u:指定用户UID标记号
-d:指定宿主目录,缺省为/home/用户名
-e:指定账号时效时间
-g指定用户的基本组名(或UID号)
-G:指定用户的附加组(或GID号)
-M:不为用户建立并初始化宿主目录
-s:指定用户的登录Shell
用户账号的初始配置文件
文件来源
新建用户账号时,从/etc/skel目录中复制
主要的用户初始配置文件
.bash_history输入记录
.bash_profile 用户登录执行文件
./bashrc:每次进入新的bash环境时执行
.bash_logout用户退出执行文件
rm -rf /tmp/*退出清除记录
设置/更改用户口令passwd
格式
Passwd [选项] 用户名
常用命令选项
-d:清空用户的密码,使之无需密码即可登陆
-l:锁定用户账号
-S:查看用户账号的状态(是否被锁定)
-u:解锁用户账号
修改用户账号的属性usermod
usermod命令
格式usermod [选项] 用户名
常用命令选项
-l:更改用户账号的登录名称
-L:锁定用户账号
-U:解锁用户账户
一下选项与useradd命令中含义相同:-u,-d,-e,-g,-G,-s
删除用户账号userdel
格式userdel [-r] 用户名
添加-r选项时,表示连用户的宿主目录一并删除
组账号文件
与用户账号文件类似
/etc/group:保存组账号基本信息
/etc/gshadow:保存组账号的密码信息
添加组账号groupadd
格式groupadd [-g GID] 组账号名
添加删除组成员gpasswd
gpasswd命令
用途:设置组账号密码,添加/删除组成员
格式gpasswd [选项] 组账号名
常用命令选项
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分隔
删除组账号groupdel
groupdel 组账号名
查询账户信息
Id命令
用途:查询用户身份标识 ID 用户名
groups命令
查询用户所属的组 groups [用户名]
finger命令(需要下载)
查询用户账号的详细信息 finger [用户名]
Users,w,who命令
查询已登录到主机的用户信息
文件/目录的权限和归属
chmod命令
格式1 chmod
[ugoa] [+-=] [rwxst] 文件或目录
linux系统内有三种身份 u:拥有者 g:群组 o:其他人 a:所有用户
格式2 chmod
三位八进制 文件或目录
常用权限
读取r:允许查看文件内容,显示 目录列表
写入w:允许修改文件内容,允许在目录中新建,移动,删除文件或子目录
可执行X:允许运行程序,切换目录
其他权限
除了读写执行权限外系统还支持强制位(s权限)和粘滞位(t权限)
s权限: 设置使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份. 典型的文件是passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码.
我们可以通过字符模式设置s权限:chmod a+s filename,也可以使用绝对模式进行设置:
设置suid:将相应的权限位之前的那一位设置为4;
冒险位(SETUID)
冒险位,指文件操作者(用户)临时拥有文件拥有者的权限
冒险位,一般针对的是命令或者脚本文件
冒险位,用字母表示是s或S;数字表示是4
设置guid:将相应的权限位之前的那一位设置为2;
强制位,一般针对的是目录
如果一个目录拥有强制位,那么任何用户在该目录里所创建的任何文件的属组都会继承该目录的属组。
强制位,用字母表示是s或S;数字表示是2
两者都置位:将相应的权限位之前的那一位设置为4+2=6。
注意:在设置s权限时文件属主、属组必须先设置相应的x权限,否则s权限并不能正真生效(c h m o d命令不进行必要的完整性检查,即使不设置x权限就设置s权限,chmod也不会报错,当我们ls -l时看到rwS,大写S说明s权限未生效)
t权限粘滞位(STICKY)
粘滞位,用字母表示是t或T;数字表示是1
t权限:要删除一个文档,您不一定要有这个文档的写权限,但您一定要有这个文档的上级目录的写权限。也就是说,您即使没有一个文档的写权限,但您有这个文档的上级目录的写权限,您
也能够把这个文档给删除,而假如没有一个目录的写权限,也就不能在这个目录下创建文档。
怎样才能使一个目录既能够让任何用户写入文档,又不让用户删除这个目录下他人的文档,t权限就是能起到这个作用。t权限一般只用在目录上,用在文档上起不到什么作用。
在一个目录上设了t权限位后,(如/home,权限为1777)任何的用户都能够在这个目录下创建文档,但只能删除自己创建的文档(root除外),这就对任何用户能写的目录下的用户文档
启到了保护的作用。
**归属(所有权)**
属主:用有该文件或目录的用户账号
属组:拥有给文件或目录的组账号
一般情况下文件644 目录755
使用“chmod 777 magician”命令使用能使用linux系统的用户拥有相同的“读写可执行权限”
linux给文件或目录赋权限还有一种容易理解方法。比如:“chmod a-x”表示所有用户对此文件或目录将没有执行权限。
文件夹给权限-R所有子文件都会继承父文件的权限
chmod -R 777 magician
文件夹归属chown
修改test文件归属
chown root:magician
test
root属主
magician:属组