linux下目录与文件的权限及特殊权限

一、Linux下目录与文件的权限

chown    更改文件或目录的所属主,所属组  

/etc/passwd 配置文件存放用户信息

useradd    添加用户

chown 所属主:所属组 文件或目录

chown -R    更改目录及目录下面的文件所有权限

chown -v    可视化显示权限更改

[[email protected] tmp]# chown user1:root aa
[[email protected] tmp]# ls -l
drwxr-xr--. 2 user1 root 4096 Mar 18 16:41 aa
-rw-------. 1 root  root    0 Nov 13 09:25 yum.log
[[email protected] tmp]# ls -l aa/
-rw-r--r--. 1 root root 0 Mar 18 16:41 bb
[[email protected] tmp]# chown -R user1:user1 aa
[[email protected] tmp]# ls -ld aa/
drwxr-xr--. 2 user1 user1 4096 Mar 18 16:41 aa/
[[email protected] tmp]# ls -l aa/
-rw-r--r--. 1 user1 user1 0 Mar 18 16:41 bb

chmod    更改rwx权限    r=4    w=2    x=1  

chmod -R    更改目录及目录下面的文件权限

chmod -v    可视化显示权限更改

[[email protected] tmp]# mkdir aa
[[email protected] tmp]# ls -ld aa/
drwxr-xr-x. 2 root root 4096 Mar 18 16:46 aa/
[[email protected] tmp]# touch aa/bb
[[email protected] tmp]# ls -l aa/
-rw-r--r--. 1 root root 0 Mar 18 16:46 bb
[[email protected] tmp]# chmod -Rv 666 aa
mode of `aa‘ changed to 0666 (rw-rw-rw-)
mode of `aa/bb‘ changed to 0666 (rw-rw-rw-)

umask    指定目录或文件的默认权限root用户是022,普通用户是002

更改umask值    umask 001

[[email protected] ~]# umask
0022
[[email protected] ~]# umask 001
[[email protected] ~]# umask
0001
[[email protected] ~]# mkdir aa
[[email protected] ~]# touch bb
[[email protected] ~]# ls -l
drwxrwxrw-. 2 root root 4096 Mar 18 16:26 aa
-rw-rw-rw-. 1 root root    0 Mar 18 16:26 bb

如果更改umask值为001,目录权限为776  rwxrwxrw- 文件权限为666  rw-rw-rw- 文件根本不需要x权限,所以权限还是不变。

root下默认目录为755 rwxr-xr-x,文件为644    rw-r--r--
目录最大权限为777    rwxrwxrwx    777

----w--w-    022

rwxr-xr-x    755

文件最大权限为666    rw-rw-rw-    666

----w--w-    022

rw-r--r--    644

一个目录必须具有rx权限,可以进入目录 cd,可以列出目录内容 ls 

目录若没有x执行权限,我们不能cd到这个目录下,但是可以ls这个目录。

[[email protected] tmp]# mkdir aa
[[email protected] tmp]# ls -ld aa/
drwxr-xr-x. 2 root root 4096 Mar 18 16:33 aa/
[[email protected] tmp]# chmod 754 aa
[[email protected] tmp]# ls -ld aa/
drwxr-xr--. 2 root root 4096 Mar 18 16:33 aa/
[[email protected] tmp]# su - user1
[[email protected] ~]$ cd /tmp/
[[email protected] tmp]$ cd aa
-bash: cd: aa: Permission denied
[[email protected] tmp]$ ls -ld aa/
drwxr-xr--. 2 root root 4096 Mar 18 16:33 aa/

普通用户默认目录为775 rwxrwxr-x,文件为664    rw-rw-r--

二、修改文件、目录的特殊权限

chattr

+i    增加后,文件不能被删除、重命名、设定连接、写入、新增数据

[[email protected] tmp]# chattr +i aa
[ [email protected] tmp]# touch aa/cc 
touch: cannot touch `aa/cc‘: Permission denied 
[ [email protected] tmp]# chattr -i aa 
[ [email protected] tmp]# touch aa/cc 
[ [email protected] tmp]# chattr +i aa 
[ [email protected] tmp]# rm -rf aa/cc 
rm: cannot remove `aa/cc‘: Permission denied 
[ [email protected] tmp]# mv aa bb 
mv: cannot move `aa‘ to `bb‘: Operation not permitted

+a    增加该属性后,只能追加不能删除,非root用户不能修改属性

文件只能追加,目录下可以建立子目录与文件,可以写文件,不能删除子目录和文件,也不能改名。

[ [email protected] tmp]# touch 11 
[ [email protected] tmp]# ls -l
 -rw-r--r--. 1 root  root    0 Mar 18 17:10 11 
 [ [email protected] tmp]# echo ‘abc‘>11 
 [ [email protected] tmp]# cat 11 abc 
 [ [email protected] tmp]# chattr +a 11 
 [ [email protected] tmp]# echo ‘def‘>11
 bash: 11: Operation not permitted 
 [ [email protected] tmp]# echo ‘def‘>>11
 [ [email protected] tmp]# cat 11 abc def
[ [email protected] tmp]# chmod 666 11
chmod: changing permissions of `11‘: Operation not permitted 
[ [email protected] tmp]# chown user1:root 11
 chown: changing ownership of `11‘: Operation not permitted
[ [email protected] tmp]# rm -rf 11
 rm: cannot remove `11‘: Operation not permitted

lsattr    查看文件或目录的特殊权限

[[email protected] tmp]# lsattr
-------------e- ./yum.log
----i--------e- ./aa

lsattr -d    查看目录的特殊属性

[[email protected] tmp]# lsattr -d aa 
-----a-------e- aa

lsattr -R    列出当前目录及子目录的特殊属性

[ [email protected] tmp]# lsattr -R 
-------------e- ./yum.log 
-----a-------e- ./aa 
./aa: 
-------------e- ./aa/bb 
-------------e- ./aa/cc

set_uid 使普通用户临时拥有执行这条命令所属主的权限

set_uid=4    set_gid=2     stick_bit=1

[ [email protected] ~]# umask 0022
[ [email protected] ~]# which passwd /usr/bin/passwd
[ [email protected] ~]# ls -l /usr/bin/passwd
 - rwsr-xr-x. 1 root root 25980 2月  22 2012 /usr/bin/passwd

rws=rwx+s    小s说明文件具有rwx的权限 大S说明文件没有x权限

passwd所属主为root用户,有了rws权限后普通用户也具有root的权限,所以普通用户可以自己更改密码。

执行者必须对文件拥有x权限(否则即使设置了SUID,由于你对文件根本无法执行SUID此时也无效,此时权限位显示S);

举例说明:

[ [email protected] tmp]# chmod u-sx /usr/bin/passwd  
[ [email protected] tmp]# ls -l /usr/bin/passwd  
-rw-r-xr-x. 1 root root 25980 Feb 22  2012 /usr/bin/passwd
[[email protected] ~]# chmod u+s /usr/bin/passwd 
[[email protected] ~]# ls -l /usr/bin/passwd
-rwSr-xr-x. 1 root root 25980 2月  22 2012 /usr/bin/passwd

大写S 说明文件没有x权限,不能执行,没有意义。


chmod u-s /usr/bin/passwd    可执行的文件、二进制的才可以设置s权限;

[ [email protected] tmp]# chmod u-s /usr/bin/passwd  
[ [email protected] tmp]# ls -l /usr/bin/passwd  
-rwxr-xr-x. 1 root root 25980 Feb 22  2012 /usr/bin/passwd

u-s 后文件具有rwx权限

[ [email protected] ~]# ls -l /usr/bin/passwd  
-rwsr-xr-x. 1 root root 25980 2月  22 2012 /usr/bin/passwd
[ [email protected] tmp]# chmod 755 /usr/bin/passwd  
[ [email protected] tmp]# ls -l /usr/bin/passwd  
-rwxr-xr-x. 1 root root 25980 Feb 22  2012 /usr/bin/passwd 
[ [email protected] tmp]#  chmod 4755 /usr/bin/passwd 
[ [email protected] tmp]# ls -l /usr/bin/passwd  
-rwsr-xr-x. 1 root root 25980 Feb 22  2012 /usr/bin/passwd

本身passwd是755 ,最前面加了suid 这个值为4,所以这个passwd的权限是4755

[ [email protected] ~]# chmod 6755 /usr/bin/passwd 
[ [email protected] ~]# ls -l /usr/bin/passwd  
-rwsr-sr-x. 1 root root 25980 2月  22 2012 /usr/bin/passwd

6是代表suid4+sgid2=6 然后本身的权限是755,所以是6755

set_gid    使普通用户临时具有文件所属组的权限,可以作用于文件和目录

chmod g+s  目录名

更改完成后在目录下面新建立的目录都是,父目录所属组的属性

新建立的目录拥有父目录所属组的权限,继承父目录的。

[ [email protected] tmp]# mkdir aa 
[ [email protected] tmp]# ls -ld aa/ 
drwxr-xr-x. 2 root root 4096 Mar 19 10:04 aa/
[[email protected] tmp]# chown user1:user1 aa
[[email protected] tmp]# ls -ld aa/
drwxr-xr-x. 3 user1 user1 4096 Mar 19 10:05 aa/
[[email protected] tmp]# chmod  g+s aa/
[ [email protected] tmp]# ls -ld aa/ 
drwxr-sr-x. 4 user1 user1 4096 Mar 19 10:07 aa/
[[email protected] tmp]# mkdir aa/cc
[ [email protected] tmp]# ls -l aa 
drwxr-sr-x. 2 root user1 4096 Mar 19 10:06 cc 
[ [email protected] tmp]# touch aa/1.txt 
[ [email protected] tmp]# ls -l aa/1.txt  
-rw-r--r--. 1 root user1 0 Mar 19 10:07 aa/1.txt
[ [email protected] tmp]# chmod g-s aa/ 
[ [email protected] tmp]# ls -ld aa 
drwxr-xr-x. 4 user1 user1 4096 Mar 19 10:07 aa 
[ [email protected] tmp]# mkdir aa/dd 
[ [email protected] tmp]# ls -l aa/ 
drwxr-sr-x. 2 root user1 4096 Mar 19 10:06 cc 
drwxr-xr-x. 2 root root  4096 Mar 19 10:10 dd

去掉guid的s权限后,在目录创建的目录不会继承父目录的属性;

sticky_bit     防删除位,rwt 属性只有创建者可以删除自己的,其他用户不可以删除。root具有至高无上的权限都可以删除。

chmod o+t 目录名

[ [email protected] ~]# ls -ld /tmp/ 
drwxrwxrwt. 3 root root 4096 3月  19 19:30 /tmp/
[ [email protected] tmp]# mkdir 11
[ [email protected] tmp]# chmod 777 11 
[ [email protected] tmp]# ls -ld 11/ 
drwxrwxrwx 2 root root 4096 3月  19 19:40 11/ 
[ [email protected] tmp]# chmod o+t 11/ 
[ [email protected] tmp]# ls -ld 11/ 
drwxrwx rwt 2 root root 4096 3月  19 19:40 11/

目录必须有x权限才可以进去,小写t说明目录有x权限,T说明没有x权限,文件是T显示的。

[ [email protected] 11]# su - test1 
[ [email protected] ~]$ cd /tmp/11/ 
[ [email protected] 11]$ mkdir 12
[ [email protected] 11]$ touch 123 
drwxrwxr-x 2 test1 test1 4096 3月  19 20:14 12 
-rw-rw-r-- 1 test1 test1    0 3月  19 20:15 123 
drwxr-xr-x 2 root  root  4096 3月  19 20:14 root
[ [email protected] 11]# su - test2 
[ [email protected] ~]$ cd /tmp/11/ 
[ [email protected] 11]$ ls -l 
drwxrwxr-x 2 test1 test1 4096 3月  19 20:14 12 
-rw-rw-r-- 1 test1 test1    0 3月  19 20:15 123 
drwxr-xr-x 2 root  root  4096 3月  19 20:14 root 
[ [email protected] 11]$ rm -rf 12 
rm: 无法删除"12": 不允许的操作 
[ [email protected] 11]$ rm -rf 123 
rm: 无法删除"123": 不允许的操作 
[ [email protected] 11]$ touch 234.txt 
[ [email protected] 11]$ ls -l 
drwxrwxr-x 2 test1 test1 4096 3月  19 20:14 12 
-rw-rw-r-- 1 test1 test1    0 3月  19 20:15 123 
-rw-rw-r-- 1 test2 test2    0 3月  19 20:16 234.txt 
drwxr-xr-x 2 root  root  4096 3月  19 20:14 root

可以创建目录或文件,但是不能删除其他用户的目录或文件。

时间: 2024-12-16 16:31:47

linux下目录与文件的权限及特殊权限的相关文章

Linux下目录和文件的三种权限

在Linux下,目录和文件会有3种权限,分别是:可读r,可写w,可执行x.那么目录和文件的权限有什么区别呢?这篇博文解释的就是这个问题. 在解释之前,我们应该有一些基础知识:Linux系统下有3种身份(所有组.用户组.其他人),3种权限(r,w,x),3个修改权限的命令(chown, chgrp, chmod). 1. 文件的3种权限 1)read:可读取文件的内容,例如读取文本文件的内容. 2)writer:可以编辑.新增或者修改文件的内容,但是不可以删除该文件.这里的修改都是基于文件内容的,

linux下目录与文件的查找

参考网址:http://www.runoob.com/linux/linux-command-manual.html which命令: which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录.which指令会在环境变量$PATH设置的目录里查找符合条件的文件.也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令. 语法 which(选项)(参数) 选项 -n<文件名长度>:制定文件名长度,指定的长度必须大于或等

【Linux学习】Linux下用户组、文件权限详解

原文地址:http://www.cnblogs.com/123-/p/4189072.html Linux下用户组.文件权限详解 用户组 在linux中的每个用户必须属于一个组,不能独立于组外.在linux中每个文件有所有者.所在组.其它组的概念 - 所有者 - 所在组 - 其它组 - 改变用户所在的组 所有者 一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者 用ls ‐ahl命令可以看到文件的所有者 也可以使用chown 用户名 文件名来修改文件的所有者 文件所在组 当某个用户创

linux下如何修改文件的权限chmod

linux下如何修改文件的权限chmod 方法一.文字设定法 u 表示“用户(user)”,即文件或目录的所有者.g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户.o 表示“其他(others)用户”.a 表示“所有(all)用户”.它是系统默认值. 可以连贯操作u-r-x操作u所有者权限chmod u+r bb 为件bb 所有者增加r读的权限 chmod u-r-x bb 消除bb文件的r w 权限 操作g所属组的权限chmod g+r+w bb 为bb文件夹增加文件所属

Windows 下目录及文件向Linux同步

本文解决的是Windows 下目录及文件向Linux同步的问题,Windows向 Windows同步的请参考:http://www.idcfree.com/article-852-1.html 环境介绍: Windows文件服务器:Windows SERVER 2008 (64bit) IP:10.10.3.157 Linux备份服务器: Centos 6.4   (64bit)  IP:10.10.3.153 Cwrsyncserver版本:cwRsyncServer_4.1.0_Instal

Linux下批量修改文件及文件夹所有者及权限

Linux下批量修改文件及文件夹所有者及权限需要使用到两个命令,chmod以及chown 例:对/opt/Oracle/目录下的所有文件与子目录执行相同的权限变更: chmod -R 700 /opt/oracle/ -R参数是递归 处理目录下的所有文件以及子文件夹 700是变更后的权限表示(只有所有者有读和写以及执行的权限) /opt/oracle/ 是需要执行的目录 例:对 /opt/oracle/  目录下的所有文件与子目录执行相同的所有者变更,使所有者修改为oinstall用户组的ora

Linux下目录的合并以及文件的覆盖

有两个目录test和new,test目录下有目录和文件,new目录下有更改过的一些test下的目录和文件,以及一些新增的文件,现在对两个目录进行合并以及覆盖test下的旧文件. cp -frap new/* test/ 命令其实非常简单,解释下: -f 强制覆盖,不询问yes/no(-i的默认的,即默认为交互模式,询问是否覆盖)-r 递归复制,包含目录-a 做一个备份,这里可以不用这个参数,我们可以先备份整个test目录-p 保持新文件的属性不变 记住一点就是,实现合并和覆盖是用cp,而不是mv

Linux下几种文件传输命令

Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等敏感信息进行加密,因此可以有效的防止用户信息在传输的过程中被窃取,比FTP有更高的安全性.在功能方面与FTP很类似,不仅可以传输文件数据,而且可以进行远程的文件管理(如建立,删除,查看文件列表等操作).Sftp与ftp虽然只有一字之差,但基于

Linux下执行.sh文件

Linux下执行.sh文件有两种情况: 一.直接./加上文件名.sh,如运行hello.sh为./hello.sh[hello.sh必须有x权限] 二.直接sh 加上文件名.sh,如运行hello.sh为sh hello.sh[hello.sh可以没有x权限] 举例说明: 1.执行当前目录下的sh文件: chmod u+x hello.sh ./hello.sh 或者sh hello.sh 2.执行绝对路径目录下的sh文件: ./home/test/shell/hello.sh /home/te