Linux权限
操作系统通过用户、组概念来管理使用计算机的人
用户代表一个使用计算机的使用者,操作系统通过用户概念限制一个使用者能够访问的资源
每个用户有一个用户名和一个用户ID(UID),用户ID是操作系统真正用来管理标识用户的,UID为32位长,从0开始,最大一般到60000。
用户分为:root用户(uid为0)、系统用户(uid 1~499)、普通用户(uid 500+)
每个用户有一个家目录,用来保存用户私有数据,root用户的家目录为/root,普通用户家目录为/home下与用户名相同的目录
每个可登陆用户拥有一个指定的shell
【用户和组】
一个用户可以属于一个主组,可以属于一个或多个附属组
用户、组信息保存在以下三个文件中:
/etc/passwd 用户信息
/etc/shadow 用户密码
/etc/group 组信息
命令id用以显示当前用户的信息,命令passwd用以修改当前用户的密码
以下命令用以显示登陆用户信息:
whoami 显示当前用户
who 显示登陆的用户的信息
w 显示登陆的用户的详细信息
命令useradd用以添加一个用户:
useradd 用户名
-d 指定用户家目录
-s 指定用户登陆shell
-u 指定用户uid
-g 指定用户所属主组
-G 指定用户所属附属组
命令usermod用以修改一个用户的信息:
usermod 参数 用户名
-l 修改用户名
-u 修改uid
-g 修改用户主组
-G 修改用户附属组
-L 锁定用户
-U 解锁用户
命令userdel用以删除一个用户:
userdel 用户名
userdel -r 用户名 删除用户的同时删除该用户家目录
命令groupadd用以创建一个组:
groupadd 组名
命令groupmod用以修改一个组信息:
groupmod -n 新组名 旧组名
groupmod -g 新组ID 旧组ID
命令 groupdel 用以删除一个组
【权限管理】
权限是操作系统用来限制用户、组、进程对操作系统资源(文件、设备等)的访问的机制
权限分为:读、写、执行,一般表示为 r、w、x
Linux拥有三个特殊权限:
suid 以所属用户身份执行
sgid 以所属组身份执行,若为目录,则该目录下的所有新文件所属组与该目录相同,所属用户和创建者相同
sticky 对该目录有写入权限的用户可以删除属于自己的文件,不能删除别人的文件
每个文件或文件夹拥有一个所属用户和所属组,并且设置对应的权限
每个进程在运行的时候均以一个用户的身份运行,同时继承该用户的权限
Linux使用UGO权限模型,U代表所属用户、G代表所属组、O代表其他,每个文件的权限基于UGO模型设置
umask属性用来确定新建文件的默认权限
命令umask可以修改当前umask属性:umask 权限值
命令ls -l可以查看文件的权限
命令chown可以修改一个文件的所属用户:
chown 用户 文件
(-R 参数递归修改目录)
命令chgrp用以修改一个文件的所属组:
chgrp 组 文件
(-R 参数递归修改目录)
命令chmod用以修改一个文件的权限:
chmod 权限 文件
权限格式:目标域 +、- 权限
其中目标域为u\g\o的一个或多个
+\- 表示添加还是删除权限
权限为 r\w\x的一个或多个
权限也可用3位数表示,每一位中:
r=4=2^2
w=2=2^1
x=1=2^0
若权限为4位数,则第一位为扩展权限:
u-s=4
g-s=2
o-t=1