软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
  软件世界网 -> 系统运维 -> linux权限管理总结 -> 正文阅读

[系统运维]linux权限管理总结


文件或目录的权限


目录和文件拥有:读r、写w、执行x权限。
// 使用 ls -l命令查看当前目录的文件权限信息
#ll
-rw-r--r-- 1 root root  161 Mar 20 20:39 test.txt // test文件所有者拥有读写权限、所属组和其他用户拥有读权限
drw-r--r-- 1 root root  248 Mar 23 21:03 download

权限对文件的作用


r :读取文件内容(cat、more、head、tail)
w:编辑、新增、修改文件内容(vi、echo),但不包含删除文件
x:可执行
对文件来讲:最高权限是执行权限(x),所以文件要少赋予执行权限。

权限对目录的作用


r:可以查询目录下文件名(ls)。
w: 具有修改目录结构的权限。如新建文件和目录,删除此目录下文件和目录,重命名此目录下文件和目录,剪切此目录下文件或目录。(touch、rm、mv、cp)。
x:可以进入目录(cd)。
对目录来讲:最高权限是写权限(w),所以目录要少赋予写权限。
注:0没有任何权限,5(rx)可以查看和进入,7(rwx)拥有最高权限;1、4、6权限对目录没有意义。

分配文件基本权限时,核心原则:在最小权限情况下能够实现要求即可!

chmod 修改文件或目录的权限

/*使用[u、g、o、a][+、-、=]来设置文件或目录的权限[r、w、x]
u:user 所有者
g:group 所属组
o:other 其他
a:all 所有用户,包括所有者、所属组、其他
+:增加权限
-:减少权限
=:设置权限
*/
// 给test的拥有者u,文件增加某权限
#chmod u+x,g+r test
#chmod a+w test
#chmod u-x test
#chmod g=rwx test

/*使用数字设置文件或目录的权限
rwx在Linux下分别对应十进制4、2、1 即3bit二进制的111
*/
// 设置dir目录的所有者拥有所有权限,所属组和其他用户拥有读和执行的权限
#chmod 755 dir/

chown 改变文件或目录的所有者


格式:chown newUser 文件名
让其他人拥有最高权限的最佳做法是使用chown更改文件的所有者。
// 同时改变文件的所有者和所属组
chown user:group 文件名

chgrp 改变文件或目录的所属组


格式:chgrp newUser 文件名
注:linux创建文件时,默认其所有者为当前用户、其所属组为与当前用户名相同的组。
/* 用例
 *1 当前用户创建一个test目录
 *2 创建新的用户xm,并让他拥有test目录的所有权限
 *3 让组用户可以拥有查看权限
 *4 其他人没有这个目录的任何权限
*/
// 创建test目录 
#mkdir test
// 添加用户xm和密码 
#useradd xm
#passwd xm
// 创建用户user1、user2
#useradd user1 
#useradd user2
// 创建user组
#groupadd user
// 把user1、user2添加到user组
#gpasswd -a user1 user
#gpasswd -a user2 user
// 更改test目录的所有者和组
#chown xm:user test
// 更改test目录权限
#chmod 750 user

默认权限

umask 查看默认权限

#umask
0022 // 第一位0是特殊权限

umask值的修改


临时修改
umask 0033
永久修改
vi /etc/profile

文件的默认权限


文件默认不能建立为执行文件,必须手工赋予执行权限
所以文件默认权限最大为666
默认权限需要换算成字母再相减
建立文件之后的默认权限,为666减去umask值
例如:
666 - 022(umask值)
-rw-rw-rw- 减去 —–w–w- 等于 -rw-r–r–
666 - 033(umask值)
-rw-rw-rw- 减去 —–wx-wx 等于 -rw-r–r– (注:空减去某权限仍为空)

目录的默认权限


目录默认权限最大为777
默认权限需要换算成字母再相减
建立文件后的默认权限,为777减去umask值

ACL权限

ACL权限简介


Linux基本权限管理中是分为用户所有者、所属组和其他人,如果有人想拥有和基本权限中任何权限都不一样的时候,基本权限无法满足这种需求,这时候可以考虑使用ACL权限。

例如:
Linux中有一个test目录,它的所有者为xiaoming,拥有所有权限;文件夹所在组stu,也拥有所有权限;其他人没有任何权限。但是,要给一个新用户xiaowang对test目录拥有读和执行权限时,基本权限满足无法分配需求。

ACL权限用来解决用户身份不够的情况。windows系统给文件分配权限时,不用考虑文件的所有者和所属组,可以给任何用户分配相应的权限;ACL权限和windows系统一样,可以分配任何用户相应的权限而不考虑文件所有者和所属组的权限,这解决基本权限无法分配复杂权限的问题。

开启、查看和设置ACL权限

// 查看分区ACL权限是否开启
// df 查看分区情况
// dumpe2fs命令是查询指定分区详细文件系统信息命令;-h仅显示超级块中信息,而不显示磁盘块组的详细信息
#dumpe2fs -h  /dev/sda5 

// 临时挂载 根分区/ 的ACL权限
#mount -o remount,acl  / 

// 永久开启分区ACL权限
#vi /etc/fstab 
// defaults权限默认包括挂载ACL权限,如果没有ACL权限,在defaults后添加即可
UUID=6634633e-001d-43ba-8fab-202f1df93339 / ext4 defaults,barrier=0,acl 1 1
//重新挂载文件系统或重启动系统,使修改生效
#mount -o remount /

// 查看acl权限
#getfacl 文件名 

// 设置acl权限
setfacl [option] 文件名
options:
-m 设定acl权限     
   给用户赋予文件(或目录)acl权限,使用"u:用户名:权限"格式 
   例子:给用户lw赋予文件test读执行权限:setfacl -m u:lw:rx test
   给组分配acl权限使用"g:组名:权限"格式
-x 删除指定的acl权限
-b 删除所有的acl权限
-d 设定默认的acl权限
-k 删除默认的acl权限
-R 递归设定acl权限
// 解决上面提到的问题
#useradd xiaoming
#groupadd stu
#mkdir /home/test
#chmod 770 /home/test
#chown xiaoming:stu /home/test
#useradd xiaowang
// 设置acl权限
#setfacl -m u:xiaowang:rx /home/test
// 查看acl权限
#getfacl /home/test
# file: /home/test
# owner: xiaoming
# group: stu
user::rwx
user:xiaowang:r-x
group::rwx
mask:rwx  //????
other::---

最大有效权限与删除ACL权限

最大有效权限mask


mask是用来指定最大有效权限的。如果我给用户赋予了ACL权限,是需要和mask的权限“相与”才能得到用户的真正权限。
user::xiangwang:r-x
mask::rwx 
// xiaowang的权限与mask值相与,得到xiaowang的真实权限
// r-x 与 rwx得到有效权限r-x

删除ACL权限

// 删除指定用户的acl权限
#setfacl -x u:用户名 文件名
// 删除指定用户组的acl权限
#setfacl -x g:组名 文件名
// 删除指定文件的所有的acl权限
#setfacl -b 文件名

默认ACL权限和递归ACL权限

递归ACL权限


递归是父目录在设定ACL权限时,当前所有的子文件和子目录也拥有相同的ACL权限。递归ACL权限赋予文件会报错。
// 格式:setfacl -m u:用户名:权限 -R 目录名
#cd test
#touch file1
#touch file2
// 赋予用户lw拥有test目和test目录下文件的rx权限
// 使用 -R 参数设置递归权限,lw用户对file1和file2文件拥有了x权限,造成了权限溢出
#setfacl -m u:lw:rx -R test/ 
#touch file3 // 新建file3,没有acl权限
#getfacl file3 

默认ACL权限


默认ACL权限的作用是如果给父目录设定了默认ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限。
// 格式:setfacl -m d:u:用户名:权限 -R 目录名

sudo权限

sudo权限的概念


root把本来只能超级用户执行的命令赋予普通用户执行。
sudo的操作对象是系统命令。

sudo权限的使用

// 查看sudo配置文件
//man 5 sudoers查看配置文件详细
#visudo // 实际修改的是/etc/sudoers文件
// 用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
root ALL=(ALL)   ALL
// 组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
%wheel ALL=(ALL)  ALL


// 普通用户不能执行shutdown命令
#visudo
/* 编辑/etc/sudoers文件
1 增加user1 ALL=(ALL) /sbin/shutdown -r now配置。
注:命令写的越简单,user1用户得到的权限越大,命令写的越详细,user1用户得到的权限就越小;系统命令要写成绝对路径,以兼容其他版本。
2 保存退出
*/
// 登陆普通用户账号user1,执行系统命令
#su - user1
$sudo -l // 要求输入user1密码,才能查看可执行的系统命令
$sudo /sbin/shutdown -h now // 执行关机命令不被允许
$sudo /sbin/shutdown -r now //执行重启命令
// 给普通用户执行添加用户和密码的权限
# visudo
// 添加 user1  ALL=/usr/sbin/useradd 配置
// 添加 user1 ALL=/usr/bin/passwd 配置注:这使user1可以更改root的密码
// user1 ALL=/usr/bin/passwd [A-Za-z]*, !/usr/binpasswd "", !/usr/bin/passwd root,则user1无法更改root密码
// 添加 user1 ALL=/bin/vi 注:这使user1可以编辑/etc/shadow文件,更改root用户等密码

文件特殊权限

SetUID权限


  • 只有可执行的二进制程序才能设定SetUID权限

  • 命令执行者要对该程序拥有x(执行)权限

  • 命令这行者在执行改程序时获得该程序文件属主的身份

  • SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效;如passwd命令,其他用户都可以使用passwd更改自己的密码

设置和取消SetUID权限

/*设置SetUID权限,4代表设置SetUID、2代表SetGID、1代表stickyBIT
 u+s :代表给文件加上SetUID权限
 g+s :代表给目录加上SetGID权限
 o+s :代表给文件加上STICKBIT权限
*/
#ll
-rwxr-xr-x .... test
#chmod 4755 test // 或chmod u+s test
-rwsr-xr-x ... test
// 若文件没有执行权限,但设置SetUID时,执行位显示大S,这没有意义。
// 取消SetUID权限
#chmod u-s test
#chmod 0755 test

危险的SetUID权限


关键目录应严格控制写权限,比如”/”、”/usr” 等
用户的密码设置要严格最受密码三原则
对系统中默认应该具有SetUID权限的文件作以列表,定时检查有没有这之外的文件被设置了SetUID权限

不能对vi等编辑器赋予SetUID权限,这样vi就能编辑/etc/shadow文件而更改root密码。

SetGID权限

SetGID针对文件的作用


  • 只有可执行的二进制程序才能设置SetGID权限

  • 命令执行者要对该程序拥有x(执行)权限

  • 命令执行在执行程序的时候,组身份升级为改程序文件的属组

  • SetGID权限同样只在改程序执行过程中有效,也就是说组身份改变只在程序执行过称重有效。注:与SetUID作用相似
// locate命令
#ll /usr/bin/locate
-rwx--s--x 1 root slocate ...  /usr/bin/locate
// locate 搜索数据库/var/lib/mlocate.db
#ll /var/lib/mlocate.db
-rw-r----- 1 root slocate ... /var/lib/mlocate.db // 普通用户时没有权限搜索这个数据库
// locate属于slocate组且设置了SetGID权限,slocate组拥有对mlocate.db读的权限,所以普通用户使用locate时组身份自动升级为slocate组则可以使用locate命令查询mlocate.db数据库。命令结束后,用户user身份返回user组身份。

SetGID针对目录的作用


  • 普通用户必须对此目录拥有r和x权限,才能进入此目录

  • 普通用户在此目录中的有效组会变成此目录的属组

  • 若普通用户对此目录拥有w权限时,新建的文件的默认属组是这个目录的属组
// 在root用户在/tmp目录创建test目录,并更改目录权限为777
#cd /tmp
#mkdir test
#ll
drwxr-xr-x 2 root root ... test
#chmod 777 test
#ll
drwxrwxrwx 2 root root ... test

// user用户在/tmp/test目录创建file1
$cd /tmp/test
$touch file1
$ll
-rw-rw-r-- 1 user user ... file1

// root用户更改test目录为2777即设置SetGID
#chmod 2777 test
#ll
drwxrwsrwx 2 root root ... test
// user用户在/tmp/test目录创建file2
$touch file2
$ll
-rw-rw-r-- 1 user user ... file1
-rw-rw-r-- 1 user root... file2 // 新建file2文件所属组为root组

设置和取消SetGID权限

// 设置SetGID权限
#chmod 2755 test/
#chmod g+s test/
// 取消SetGID权限
#chmod 0755 test/
#chmod g-s test/

Sticky BIT

SBIT粘着位作用


  • 黏着位目前只针对目录有效

  • 普通用户对目录拥有w和x权限,若普通用户可以拥有此目录的w权限

  • 如果该目录没有黏着位,普通用户因为拥有所有权限,可以删除该目录所有的文件,包括其他用户建立的文件;该目录赋予黏着位后,普通用户就算拥有目录的w权限,也只能删除自己建立的文件,不能删除其他用户建立的文件。

如/tmp 目录即拥有黏着位

设置与取消黏着位

// 设置黏着位
#chmod o+t dir
#chmod 1777 dir
// 取消黏着位
#chmod o-t dir
#chmod 0777 dir

不可改变位权限


chattr [+-=] [option] 文件名或目录名
+ : 增加权限
- :删除权限
=:等于某权限
options:
i:如果对文件设置i属性,那么不允许对文件进行删除,改名,也不能添加和修改数据;如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。
a:如果对文件设置a属性,那么只能在文件中增加数据,但不能删除也不嗯呢该修改数据;如果对目录设置a属性,那么只允许在目录中建立和修改文件,但不允许删除。:不允许使用vi增加文件数据,因为无法判断vi是增加还是修改或删除文件数据,所以只能使用echo data>> file来追加数据。
chattr对文件或目录都生效
#chattr +i file
#lsattr file
----i-------e- file
#vim abc // 不允许修改
#rm -rf file //不允许删除
// 删除i属性
#chattr -i file

参考


慕课网教程linux权限管理
......显示全文...
    点击查看全文


上一篇文章      下一篇文章      查看所有文章
2016-03-29 23:05:07  
系统运维 最新文章
linux新进程的创建
Muduo网络库源码分析(一)EventLoop事件循
Linux系统分区
haproxylvsnginx负载均衡的比较
PeopleSoft介绍
win7+iis7+asp+.net+php环境配置
执行系统命令并且将输出写到指定日志文件的
linux批量替换多个文件中的字符串
makefile中=、:=和+=的区别
Linux服务器不关机新增硬盘的方法
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 美食菜谱 新闻资讯 电影视频 小游戏 Chinese Culture 股票 租车
生肖星座 三丰软件 视频 开发 短信 中国文化 网文精选 搜图网 美图 阅读网 多播 租车 短信 看图 日历 万年历 2018年1日历
2018-1-23 4:04:41
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --