Linux权限管理之基本权限

1、文件权限: -rw-r--r-- :         r 读   w 写     x 执行

-:   文件类型(- 文件  d 目录  l软链接文件)rw- r-- r--

u所有者(user)  g所属组(group)  o其他人(other)

2、chmod命令

chmod 选项 模式 文件名

选项 :-R     递归

模式 :[ugoa] [+-=] [rwx]

例如:chmod u+x 文件名           给user赋予x权限

chmod g+w,o+w 文件名       给....

chmod a=rwx 文件名         给所有人...

权限的数字表示:r --- 4     w --- 2    x --- 1

rwxr-xr-x  755

chmod 755 abc

对文件来讲:最高权限是 X

对目录来讲:最高权限是 W    目录只有0  5(rx)  7(rwx)三个权限

3、权限对目录和文件的作用

r:可以查询目录下的文件名(ls、ll)

w:具有修改目录结构的权限。如新建文件和目录,删除此目录下文件和目录,重命名此目

录下文件和目录,剪切(touch、rm、mv、cp)

x:可以进入目录 (cd)

权限对文件的作用

r:读取文件内容(cat、more、head、tail)

w:编辑、新增、修改文件内容(vi、echo)

-但是不包含删除文件

x:可执行

4、修改文件的所有者和所属组

chown 用户名:组名 文件名    例如:chown user1:user abc

chgrp 组名  文件名

useradd user1  #添加用户       groupadd user  #添加组

gpasswd -a user1 user  #把user1添加到user里

chown user1:user 文件名  #赋予user1和user对该文件的权限

Linux权限管理之特殊权限

一、ACL权限:给予所有者、所属组和其他人之外的用户的权限

1、ACL权限  (1)查看分区ACL权限是否开启:dumpe2fs -h /dev/sda5

#dumpe2fs命令是查询指定分区详细文件系统信息的命令

选项: -h    #仅显示超级块中的信息,不显示磁盘块组的详细信息

(2)临时开启分区ACL权限:mount -o remount,acl /

#重新挂载根分区,并挂载加入ACL权限

(3)永久开启分区ACL权限:vi /etc/fstab

UUID=c2......./ ext4 defaults,acl 1 1    #加入acl

mount -o remount /    #重新挂载或重启系统,使修改生效

2、ACL查看与设定

useradd tony       groupadd stu       mkdir /abc    chown tony:stu /abc

chmod 770 /abc     useradd lw         setfacl -m u:lw:rx abc

#给用户lw赋予r-x 权限,使用'u:用户名:权限' 格式

#为组group2分配acl权限,使用'g:组名:权限'  格式

getfacl abc   #查看acl权限

3、删除ACL权限

setfacl -x u:用户名 文件名      #删除指定用户的ACL权限

setfcal -x g:组名 文件名        #删除指定用户组的ACL权限

setfacl -b 文件名               #会删除文件的所有ACL权限

4、递归和默认ACL权限       #权限只能赋予目录,不能赋予文件

(1)递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限

setfacl -m u:用户名:权限-R 目录名(绝对路径)

(2)默认ACL权限的作用是如果给父目录设定默认ACL权限,那么父目录中所有新建的

子文件都会继承父目录的ACL权限

setfacl -m d:u:用户名:权限 目录名(绝对路径)

二、sudo权限

1、sudo权限

root把本来只能超级用户执行的命令赋予普通用户执行

sudo的操作对象是系统命令

2、sudo的使用

visudo      #实际修改的是/etc/sudoers文件

root   ALL = (ALL)      ALL

#用户名  被管理主机的地址=(可使用的身份) 授权命令(绝对路径)

#%wheel   ALL==(ALL)   ALL

# %组名   被管理主机的地址=(可使用的身份) 授权命令(绝对路径)

例子1、授权普通用户可以重启服务器

visudo         user1 ALL=(ALL) /sbin/shutdown -r now

sudo /sbin/shutdown -r now

普通用户执行sudo赋予的命令:

su - user1        #切换到user1用户

sudo -|           #查看可用的sudo命令

例子2、授权普通用户可以添加其他用户

visudo             user1 ALL=/usr/sbin/useradd

user1 ALL=/usr/bin/passwd      #授予用户设定密码的权限

user1 ALL=/usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd'',

!/usr/bin/passwd root      #不能设定root用户的密码

三、文件特殊权限    (特殊权限尽量少修改)

1、SetUID的功能

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

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

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

SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

2、设定SetUID的方法

4代表SUID

chmod 4(0)755 文件名    chmod u+(-)s 文件名  (u是所有者)  0和- 是取消USID

passwd命令拥有SetUID权限,所有普通用户可以修改自己的密码

ll /usr/bin/passwd      -rwsr-xr-x.....

cat命令没有SetUID权限,所以普通用户不能查看/etc/shadow文件内容

ll /bin/cat       -rwxr-xr-x......

3、危险的SetUID

关键目录应严格控制写权限。如'/','/usr'等

用户的密码设置要严格遵守密码三原则:复杂性、易记忆性、时效性

对系统中默认应该具有SetUID权限的文件作一列表,定时检查有没有这之外的文件

被设置了SetUID权限:

{  #!/bin/bash

find / -perm -4000 -o -perm -2000 > /tmp/setuid.check

#搜索系统中所有拥有SUID和SGID的文件,并保存到临时目录中。

for i in $(cat /tmp/setuid.check)

#做循环,每次循环取出临时文件中的文件名

do

grep $i /root/suid.log > /dev/null    #( '> /dev/null'抛进回收站)

#比对这个文件名是否在模板文件中(suid.log是新Linux系统运行find / -perm -4000

-o -perm -2000 > /root/setuid.log保存的原始包含SUID和SGID的信息)

if [ '$?' != '0' ]

#检测上一个命令的返回值,如果不是0,证明上一个命令报错

then

echo '$i isn't in listfile!' >> /root/suid_log_$(date +%F)

#如果文件名不在模板文件中,则输出错误信息,并把报错送到日志中

fi

done

rm -rf /tmp/setuid.check

#删除临时文件              }

实例:touch abc

find / -perm -4000 -o -perm -2000 > /tmp/suid.log    #suid_log模板

vi suid_check.sh  然后把上面脚本语言粘贴到suid_check.sh中,'shift+:wq'保存退出

chmod 755 suid_check.sh    #赋权

ll

chmod u+s abc              #给abc USID权限

./suid_check.sh            #执行脚本

ls

cat suid_log_2016-3-16   #查看新文件的内容,有多余的有SUID的abc文件

rm -rf abc

1、SetGID针对文件的作用

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

命令执行者要对该程序拥有X权限

命令执行程序时,组身份升级为该程序文件的属组

SetGID权限同样只在该程序执行过程中有效。

2、SetGID针对目录的作用

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

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

若普通用户在此目录拥有w权限时,新建的文件默认属组是该目录的属组

3、设定SetGID

2代表SGID:chmod 2755 文件名       chmod g+s 文件名

1、SBIT粘着位作用

粘着位目前只对目录有效

普通用户对该目录拥有w和x权限

如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户

建立的文件。一旦赋予看粘着位,除了root可以删除所有文件,普通用户就算拥有w权限,也只能

删除自己建立的文件,但不能删除其他用户建立的文件。

2、设置与取消粘着位

设置粘着位: chmod 1755 目录名        chmod o+t 目录名     (o是other)

取消粘着位: chmod 0777 目录名        chmod o-t 目录名

四、不可改变位权限

1、chattr命令格式

chattr [+-=] [选项] 文件或目录名

+:增加权限

-:删除权限

=:等于某权限

chattr选项包括:i和a      a等价于append、  i等价于insert

i:如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果

对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。

a:如果对文件设置a属性,那么只能在文件中增加(echo)数据,但是不能删除也不能修改数据;

如果对目录设置a属性,那么只允许在目录中建立和修改文件,但不允许删除。

2、查看文件系统属性

lsattr 选项 文件名

选项: -a 显示所有文件和目录

-d 若目标是目录,仅列出目录本身的属性,而不是子文件的

实例:chattr +i abc(文件名)

lsattr abc

lsattr -d 123(目录)

chattr +a abc

echo bbbbb >> abc (添加数据,不能用vi命令)

linux查询默认权限命令,Linux权限管理之基本权限相关推荐

  1. linux查询配置基础命令,Linux查看系统配置常用命令

    Linux查看系统配置常用命令 系统 # uname -a 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue 查看操作系统版本 # cat /proc/cpuinfo 查看 ...

  2. linux查询内核参数命令,Linux内核启动参数详解

    1.环境: Ubuntu 16.04 Linux linuxidc 4.4.0-89-generic #112-Ubuntu SMP Mon Jul 31 19:38:41 UTC 2017 x86_ ...

  3. Linux查询主机IP命令

    Linux查询主机IP命令 一.hostname hostname -i 详情指令 Program options:-a, --alias alias names-A, --all-fqdns all ...

  4. linux里面查找替换命令,LINUX 查找替换命令 总结

    find /var/ -name "*.php" > /home/tmp 在/var/目录下查找 所有以.php后缀结尾的文件  结果很多,就 > 输出结果到/home ...

  5. linux安装DNS服务命令,linux配置dns服务器配置命令

    linux配置dns服务器配置命令 Linux系统的DNS服务器怎么配置,配置命令有哪些?下面跟yjbys小编一起来了解一下吧! 一.实验目的 熟悉Linux系统中DNS服务器的配置方法.理解配置过程 ...

  6. Linux下的tree命令 --Linux下目录树查看

    Linux下的tree命令 --Linux下目录树查看 有时我们需要生成目录树结构,可以使用的有ls -R,但是实际效果并不好 这时需要用到tree命令,但是大部分Linux系统是默认不安装该命令的, ...

  7. linux系统vi替换命令,linux:vi 替换命令

    转自:http://www.cnblogs.com/afant/archive/2009/03/11/1408745.html :s/^.*$/\L&/100 ##将100行内的小写转换成大写 ...

  8. linux关闭后台运行命令,linux后台运行、关闭、查看后台任务常用命令

    一.& 加在一个命令的最后,可以把这个命令放到后台执行,如: [root@bqh-01 ~]# watch -n 3 "sh 1.sh"  #每3s在后台执行一次1.sh脚 ...

  9. Linux下python的命令,linux下python相关命令

    若本机已安装python2,尽量不要动现有的python2,额外安装python3即可. 1.安装python3.6(centos下安装python3自带pip和setuptools) # 安装依赖环 ...

最新文章

  1. Android的ToolBar
  2. cat命令的13个用法
  3. hp服务器330g6怎么安装系统,Hp DL380 g6 安装WIN2003的图文方法
  4. Linux最佳聊天软件:Skype 4.3轻体验
  5. 异常处理python要求输入的为英文_python(异常处理)
  6. vue横向树结构_vue树形结构的实现
  7. syslog-ng客户端,服务器配置
  8. 语音识别错误太多?高科技巨头们偏偏“不信邪”
  9. nd4j 向量_ND4J的基本操作
  10. RESTORE DATAFILE TO A NEW LOCATION
  11. Vue 仿网易云音乐 WebApp
  12. Javascript回显图片
  13. 爬虫之路——DAY2
  14. 修改dns服务器转发器,域服务器dns设置转发器
  15. 为你解说加密Pdf如何导出图片
  16. POJ - Art Gallery(半平面交)
  17. java网络文章博客抓取系统_java 后端博客系统文章系统——No5
  18. 网络舆情系统的四大要素-张华平博士
  19. Isight与MATLAB联合仿真时出现:无法定位或初始化类(unsupported major minor version 52.0)
  20. CMake教程之构建Qt平台

热门文章

  1. 二级java有题库吗_计算机等级考试题库:你get二级Java试题了吗?
  2. Lightweight Machine to Machine Technical Specification: Core(LwM2M 技术规范:核心)v1.1
  3. amazon linux虚拟主机,如何在Amazon AWS上设置Linux服务器
  4. 为什么学软件需要学好数学
  5. python 极坐标图xlabel_matplotlib极坐标图刻度/轴标签位置
  6. 阿里云人脸识别介绍(1)
  7. 20211216:onnx2mnn
  8. 技术员Windows11 64位 21H2专业版 v2022【装机助手】
  9. # 第一个微信小程序代码存档
  10. 机器学习:K-means算法基本原理及其变种