权限管理:
针对文件。
ls -l /root
# ls -l
total 104
-rw——-. 1 root root 1531 Nov 4 14:30 anaconda-ks.cfg
drwxr-xr-x. 2 root root 4096 Nov 4 14:34 Desktop
drwxr-xr-x. 2 root root 4096 Nov 4 14:34 Documents
drwxr-xr-x. 2 root root 4096 Nov 4 14:34 Downloads
-rw-r–r–. 1 root root 51084 Nov 4 14:30 install.log
-rw-r–r–. 1 root root 10033 Nov 4 14:27 install.log.syslog
第1段:
1列:文件的类型
c:字符设备
-:普通文件
d:目录
b:设备文件
l:链接文件(类似windows快捷方式)
p:管道文件,一般是类unix操作系统中进程之间的通信
s:套接字文件,一般用户网络程序和本地进程之间的通讯
第2段:文件的权限
rw- | r– |r–
属主(u)|属组(g)|其他人(o)
第2段:目录的子目录个数或者文件的硬链接个数
硬盘读取数据的最小单位(扇区)512字节——>操作系统读取数据的最小单位是“块”(一次性读取8个连续的扇区【512X8=4096字节=4kb】)
设备(硬盘)格式化成某种文件系统——>操作系统会将设备分成2个区域(data数据空间|inode)
硬链接:通过索引节点(inode)来链接的文件,两个互为硬链接的文件的inode号是一致的,并且一个文件发生改变另外的文件也会同样改变;删除一个硬链接不影响其他的硬链接文件。
注意:目录不能创建硬链接(linux操作系统不支持)
open文件——>系统根据文件的inode号——>根据inode号找到数据元数据信息——>读取相应的block
ln 源文件 目标文件
# ln file1 test1
[root@node1 Desktop]# ls -lid /etc/init.d/
654165 drwxr-xr-x. 2 root root 4096 Nov 5 11:06 /etc/init.d/
[root@node1 Desktop]# ls -lid /etc/rc.d/init.d/
654165 drwxr-xr-x. 2 root root 4096 Nov 5 11:06 /etc/rc.d/init.d/
ls -i 查看文件的inode号
软链接:两个互为软链接的文件的inode号是不一样的,当删除源文件的时候,软链接的文件失效。快捷方式
# ln -s 源文件 目标文件
第3段:文件的拥有者(属主)
第4段:文件的所属组(属组)
第5段:文件的大小
第6、7、8段:文件的修改时间
第9段:文件的名字
用户权限:
r– ——>100(2进制)——>4(10进制)
-w- ——>010——>2
–x ——>001——>1
r(4):读
文件:可以查看文件的内容
目录:可以列出该目录下的文件列表
w(2):写
文件:修改文件的内容
目录:可以创建文件、修改文件属性信息、重命名等
x(1):执行
文件:是否可以执行
目录:是否可以切换到该目录
注意:目录来说r-x是同时存在的
修改文件的权限:
chmod 更改文件的权限
# chmod g-wx file
# chmod u-x,g=—,o+w file
# chmod a+x file
rw-r-xr– ——> 654 file
# chmod 654 file
# chmod -R 755 dir1 给dir1目录及目录下的子目录及文件递归授权
chown 更改文件的属主和属组
# chown redhat dir1/ # chown .admin dir1/ -R # chown :admin dir1/ # chown redhat.admin dir1/ # chown redhat:admin dir1/
# chgrp admin file 修改文件的属组
默认权限(遮罩权限)
操作系统用户默认情况下所创建的文件或者目录的权限
umask 查看用户的默认权限
0022
目录的最大权限:777
文件的最大权限:666
root用户默认情况下:
创建目录的权限:0777-0022=0755 ——>rwx r-x r-x
创建文件的权限:0666-0022=0644 ——>rw- r– r–
普通用户默认情况下:
创建目录权限:0777-0002=0775 ——>rwx rwx r-x
创建文件权限:0666-0002=0664——> rw- rw- r–
修该默认权限:
umask 0022 临时修改当前用户的默认权限,当前终端生效
redhat——>0033——>目录:744;文件:633【644】
vim ~/.bashrc 永久生效
..
umask 0033
:wq
source ~/.bashrc 或者 . ~/.bashrc
vim /etc/bashrc 全局配置文件,所有用户默认权限一致
..
umask 0002
:wq
source /etc/bashrc
特殊权限:
1、冒险位(u+s|4000):一般针对命令,让用户临时拥有该文件的拥有者的身份。上方宝剑
chmod u+s 或者 4755 /usr/bin/vim
# ll /usr/bin/vim
-rwsr-xr-x. 1 root root 1967072 Feb 17 2012 /usr/bin/vim
2、强制位(g+s|2000):一般针对目录,任何人在该目录下创建的文件或者目录强制继承父目录属组属性。强制家族企业
chmod g+s 或者2755 /home/test/dir1
drwxr-srwx. 3 root admin 4096 Jan 10 14:46 .
3、粘制位(o+t|1000):一般针对公共目录,除了root和文件的拥有者可以删除文件外,其他人不能删除其他人的文件。自己管理自己。
chmod o+t 或者1777 /share
ACL 访问控制列表
普通权限、默认权限、特殊权限都无法满足需求时,使用ACL
setfacl:
-m:修改acl策略
-d:递归授权,针对目录,对于新建的文件会继承acl策略
-R:递归授权,针对于原来的目录或者文件会继承acl策略
-x:删除某个用户的acl策略
-b:删除所有的acl策略
–mask :设置除拥有者和其他人以外的最大权限
demo:
# setfacl -m u:user01:rw file1 给user01用户对于file1文件添加一个rw权限
# getfacl file1 查看file1文件的acl策略
# file: file1
# owner: root
# group: admin
user::rw-
user:user01:rw-
group::rw-
mask::rw-
other::r–
# setfacl -m g:admin:rwx dir1 给admin组的成员对于dir1这个目录添加一个rwx的权限
# getfacl dir1 查看dir1目录的acl策略
# setfacl -Rd -m u:user01:rwx dir1 给user01用户对于dir1目录增加一个rwx权限,并且对该目录下面新建的目录也有相应的权限
# setfacl -m m::r– file1 设置除了file1的属主和其他人以外的最大权限
# getfacl file1
# file: file1
# owner: root
# group: admin
user::rw-
user:user02:rwx #effective:r–
group::r–
mask::r–
other::r–
练习一:
1、root新建目录/tmp/common,要求目录的所属组为tom。
2、是否允许tom在该目录/tmp/common下创建文件tomfile?如果不允许,怎么办?
3、用户jack如果想修改tomfile文件,怎么办?
练习二:
以普通用户user01身份登录,新建目录/shared/sysadmin,并属于sysadmin组。
1
要求:
1、组成员有可读可写的权限,其他成员没有任何权限
2、组成员不可以删除属于其他成员的文件
3、在/shared/sysadmin下创建的文件全部属于sysadmin组
4、要求harry用户可写,natasha用户不能读写
参考:
# groupadd sysadmin
#su – user01
$ mkdir /shared/sysadmin -p
# setfacl -m u:user01:rwx /
$ mkdir /shared/sysadmin -p
chmod g+s /shared/sysadmin/
chmod o+t /shared/sysadmin
ll -d /shared/sysadmin/
useradd harry
useradd natashasetfacl -m u:harry:rwx /shared/sysadmin/
真的,更得太慢了。。。
赞喔
好看