一个linux目录或者文件,都会有一个所属主和所属组。
所属主,即文件的拥有者,而所属组,即该文件所属主所在的一个组。
linux文件属性
包括文件类型 - d l b c s 依次表示 普通文件,目录,链接文件,块设备文件如磁盘等,字符设备文件例如键盘、鼠标,套接字文件
文件权限
所属主u
所属组g
其他非主组o
更改文件所属主
chown
chown -R 账户名 文件名
chown -R 账户名:组名 文件名
这里的-R选项只作用于目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件全部更改。
chmod
更改用户权限
linux使用数字去代替rwx, 具体规则为 ‘r’ 等于4, ‘w’ 等于2, ‘x’ 等于1, ‘-‘ 等于0.
举个例子: ‘-rwxrwx---’ 用数字表示就是 ‘770’,
具体是这样来的: ‘rwx’ = 4+2+1=7; ‘rwx’ = 4+2+1=7; ‘- - -‘ = 0+0+0=0.
chmod -R跟chown中的-R一样都是连级更改
chmod 777 filename
chmod -R 777 dfilename
还可以chmod ugo+wrx filename
chmod u+wrx filename
chmod u-wrx filename
chmod u=wrx filename
值得提一下的是,在linux系统中,默认一个目录的权限为 755,而一个文件的默认权限为644.
主要原因是umask值决定默认文件权限
umask预设是0022,其代表什么含义?先看一下下面的规则:
1)若用户建立为普通文件,则预设 ‘没有可执行权限’, 只有’rw’两个权限。最大为666 (‘-rw-rw-rw-‘).
2)若用户建立为目录,则预设所有权限均开放,即777 (‘drwxrwxrwx’).
umask数值代表的含义为,上边两条规则中的默认值(文件为666,目录为777)需要减掉的权限。所以目录的权限为 'rwxrwxrwx' - '----w--w-' = 'rwxr-xr-x',普通文件的权限为 'rw-rw-rw-' - '----w--w-' = 'rw-r--r--'. umask的值是可以自定义的,比如设定umask 为 002,您再创建目录或者文件时,默认权限分别为 'rwxrwxrwx' - '-------w-' = 'rwxrwxr-x' 和 'rw-rw-rw-' - '-------w-' = 'rw-rw-r--'.
umask 可以在 /etc/bashrc 里面更改,预设情况下,root的umask为022,而一般使用者则为002
修改文件的特殊属性
chattr
语法 chattr [+-=] [ASaci ] 文件或者目录名称
‘+-=’ : 分别为增加、减少、设定
‘A’ : 增加该属性后,文件或目录的atime将不可被修改;
‘S’ : 增加该属性后,会将数据同步写入磁盘中;
‘a’ : 增加该属性后,只能追加不能删除,非root用户不能设定该属性;
‘c’ : 自动压缩该文件,读取时会自动解压;
‘i’ : 增加后,使文件不能被删除、重命名、设定链接接、写入、新增数据;i’ 权限后,即使是root账户也不能删除
lsattr
该命令用来读取文件或者目录的特殊权限。
lsattr [-aR] filename
‘-a’ : 类似与ls 的-a 选项,即连同隐藏文件一同列出;
‘-R’ : 连同子目录的数据一同列出