Linux文件权限

文件权限学习

Linux文件权限

-rw-r--r--

d rwx r-xr-x

Linux文件权限

字段1:文件类型

-普通文件 d 目录 l 符号链接 c 字符设备 b block 块设备

字段2:所属者权限

字段3:所属组权限

字段4:其他用户权限

r:读  列出目录内容

w:写  添加删除目录中的文件

x: 执行  进入该目录

文件 read读取 写入权限 执行权限

root 特点 root组

普通用户  用户组

文件权限命令:

chmod a=--- 目录

chmod g=rwx 目录

chmod o=rx 目录

修改文件属性

chmod  对象 运算符号 权限   文件或者目录

对象:u(user所属者)  g(goup所属组)  o(other其他)  a(all所有)

运算符号: +赋权    -撤权    =指定权限

基本练习:

1、root用户在/tmp目录中建立一个rootdir目录,设定组成员对该目录文件有添加删除的权限rwx,其他用户对该目录没有任何权限。设定tom用户的附加组为root组并在该目录中建立文件tom.txt

命令:

mkdir /tmp/rootdir

chmod g+w,o=---/tmp/rootdir

2、现在有一个用户jerry不是root组成员,调整rootdir目录权限使用jerry用户可以进入目录并列出目录内容。

命令:

chmod o=rx /tmp/rootdir

3、root用户在rootdir中建立一个root.txt文件,在上面两题基础上,要求该文件只有root用户和jerry用户可以查看,tom无法查看该文件。

命令:

chmod g-r /tmp/rootdir/root.txt

 

普通用户 rm -fr /*   会删除家目录的内容
切换成用户Allen  删除自己家中的内容  rm -fr  .*  删除隐藏文件
使用root用户进行恢复
rm -rf /home/allen      使用root 用户先删除原来的家目录
cp  -r  /etc/skel  /home/allen   拷贝用户家目录的模板文件到home中
chown  -R  allen:allen   /home/allen  修改家目录的所属者和所属组
chown  修改文件所属者和所属组
-R  递归修改


文件的acl 设定某个用户有不同权限
man  setfacl   为文件设定访问控制列表
-m  修改   u:用户名:权限  文件或者目录

八进制赋权法

r=4  w=2  x=1
rwxr-xr-x
755
rw-r--r--
644

0    000   ---
1    001   --x
2    010   -w-
3    011   -wx
4    100   r--
5    101   r-x
6    110   rw-
7    111   rwx

三个特殊权限

t 粘滞位  (只对目录有效)
在目录中建立的文件只有文件的所属者可以删除。
chmod  777 /tmp/test
chmod o+t /tmp/test
方法2
chmod  1777  /tmp/test

sgid (只对目录有效)
在目录中建立的文件或者目录属组会继承父目录的属组
chmod 777 /tmp/test
chmod g+s /tmp/test
方法2
chmod 2777 /tmp/test

suid (只对可执行文件有效)
当一个可执行文件具有suid权限,无论谁运行该文件,谁就具有该文件所属者的权限。

which   vim
chmod u+s /usr/bin/vim
chmod 4755 /usr/bin/vim

which  find
chmod u+s /bin/find
普通用户
find  /opt  -name rh -exec "/bin/dash" \;
# 获得root权限

find  /  -perm  4755  针对权限进行查询系统中所有具有suid权限的命令
find / -perm +4000  忽视后面权限只要带suid的都查