首页 > 编程知识 正文

starting datanode,logging to,linux修改权限命令

时间:2023-05-05 07:07:15 阅读:27234 作者:1008

基本信息: setfacl和getfacl是相应的命令对,有acl。 acl有两种。 一个是访问控制列表(ACL ),用于为文件和目录设置访问控制列表。 一个是默认ACL (默认ACLs ),只能为目录设置。 如果目录中的文件没有设置ACL,则使用该目录的默认ACL。 传统的Linux文件系统权限控制通过user、group、other和r、w、x、运行的不同组合实现。

参数:

[test1@localhost ~]$ setfacl -h

setfacl2.2. 49---- setfileaccesscontrollists

usage : setfacl [-bkndrlp ] nqdjw|- x . } file .

-m,- -修改=aclmodifythecurrentacl (s ) of file(s ) #修改文件的访问控制列表

从-M,--modify-file=filereadaclentriestomodifyfromfile #文件中读取访问控制列表条目的更改

-x,--remove=基于文件(s ) of file(s ) #文件中的访问控制列表删除条目

从-X,--remove-file=filereadaclentriestoremovefromfile #文件中读取和删除访问控制列表条目

-b,--remove-allremoveallextendedaclentries #删除所有扩展的acl规则,并保留基本acl规则(所有者、组或其他)

-k,--remove-defaultremovethedefaultacl #删除默认ACL规则。

-set=ACLsettheACLoffile(s ),replacing the current ACL#设置将替换当前文件访问控制列表

从- set-file=filereadaclentriestosetfromfile #文件读取访问控制列表条目设置

- maskdorecalculatetheeffectiverightsmask #重新计算有效的权限掩码

-n,--no-mask don ' trecalculatetheeffectiverightsmask #请勿重新计算有效权限。 默认情况下,setfacl会重新计算acl mask,除非明确创建了mask

-d,--defaultoperationsapplytothedefaultacl #设置默认ACL规则

-R,--recursiverecurseintosubdirectories #递归处理所有文件和目录

-L,- -跟踪逻辑逻辑世界,跟随symbolic links #符号链接。 默认情况下,只跟踪符号链接文件,而跳过符号链接目录

-P,--physical physical walk,do not follow symbolic links#跳过包含符号链接文件的所有符号链接

- restore=filerestoreacls (inverse of ` getfacl -R ' )用于从可由getfacl-r生成的文件中恢复备份的ACL规则。 此机制允许恢复整个目录树的acl规则。 不能与--test以外的参数一起执行

-测试测试模式(aclsarenotmodified )测试模式。 文件的acl规则不会更改,操作后会列出acl规则

-v,- -版本打印版本和退出#将输出setfacl的版本号并退出

-h,--help this help text#输出帮助信息。

[test1@localhost ~]$

#选项-m和-x后面跟acl规则。 多个acl规则之间用逗号(,)分隔。 选项-M和-X用于从文件或标准输入中读取acl规则。

#选项--set和--set-file用于设置文件或目录的acl规则将被以前的设置复盖。

#选项--m (修改和--m )--修改文件)选项修改文件或目录中的acl规则。

#选项--x (移除)和-c (移除-文件)选项删除acl规则。

如果使用#-m和-X选项从文件读取规则,则setfacl接受getfacl命令的输出格式。

如果在不支持acls的文件系统上使用setfacl命令,setfacl将更改文件权限位。 如果acl规则与文件权限位不完全匹配,setfacl将修改文件权限位以尽可能对acl规则作出响应,向标准错误发送错误消息,并以大于0的状态返回。

说明:提示用户

设置权限

[test1@localhost ~]$ setfacl -m u:username:rw- test.txt       //普通的文件

[test1@localhost ~]$ setfacl -m d:u:username:rw- test/       //对目录设置

对组设置权限

[test1@localhost ~]$ setfacl -m g:group:r-- test.txt

[test1@localhost ~]$ setfacl -m d:g:group:r-- test/

查看权限

[test1@localhost ~]$ getfacl filename/directory  //文件或目录名

注    意:设置的文件或目录是刚刚新挂载的,它会提示“Operation not supported”,原因是新挂载的硬盘默认没有acl权限!手动添加ACL权限

[test1@localhost ~]$ vim /etc/fstab

UUID="****************" /mnt/data   ext4 defaults,acl 0 0

/dev/sda1        /mnt/data2  ext4  defaults,acl  0 0

#挂载的时候,尽量都UUID方式,因为这样挂载起来比较安全,具体的uuid可以使用命令来查看

[test1@localhost ~]$ blkid

/dev/sda2: UUID="0e478849-816a-4d0f-b554-62341a611e80" TYPE="ext4"

实    例:

添加权限

#用户test创建一个目录dir一个文件fil

[test@localhost ~]$ mkdir dir

[test@localhost ~]$ touch fil

#修改fil权限使其他用户不可以访问

[test@localhost ~]$ chmod 750 fil

[test@localhost ~]$ ll

total 4

drwxrwxr-x 2 test test 4096 Jul 26 14:14 dir

-rwxr-x--- 1 test test 0 Jul 26 14:14 fil

#切换到用户test1验证权限

[test@localhost ~]$ su - test1

Password:

[test1@localhost ~]$ cd /home/test/d

-bash: cd: /home/test/d: Permission denied

#没有给test1进入/home/test权限

[test1@localhost ~]$ su - test

Password:

[test@localhost ~]$ getfacl /home/test

getfacl: Removing leading '/' from absolute path names

# file: home/test

# owner: test

# group: test

user::rwx

group::---

other::---

default:user::rwx

default:user:test1:rwx

default:group::---

default:mask::rwx

default:other::---

#给其他用户访问test目录权限

[test@localhost ~]$ chmod 755 /home/test

[test@localhost ~]$ getfacl /home/test

getfacl: Removing leading '/' from absolute path names

# file: home/test

# owner: test

# group: test

user::rwx

group::r-x

other::r-x

default:user::rwx

default:user:test1:rwx

default:group::---

default:mask::rwx

default:other::---

[test@localhost ~]$ su - test1

Password:

#创建好的目录其他用户是没有写权限

[test1@localhost ~]$ cd /home/test/dir

[test1@localhost dir]$ touch fil1

touch: cannot touch `fil1': Permission denied

#提示test1对dir没有写权限

[test1@localhost ~]$ cat /home/test/fil

cat: /home/test/fil: Permission denied

#提示test1对fil无访问权限

[test1@localhost ~]$ su - test

Password:

#修改test1对fil有访问权限,对dir有完全权限

[test@localhost ~]$ setfacl -m u:test1:r fil ;setfacl -m u:test1:4 fil

[test@localhost ~]$ setfacl -m u:test1:rwx dir ;setfacl -m u:test1:7 dir

[test@localhost ~]$ su - test1

Password:

[test1@localhost ~]$ touch /home/test/dir/file3

#test1对dir有写权限了

[test1@localhost ~]$ cat /home/test/fil

#test1可以访问fil了

#test1 test2都属于file dir的other组,通过test2依然无法访问fil 和dir的写操作

[root@localhost ~]# su - test2

[test2@localhost ~]$ cat /home/test/fil

cat: /home/test/fil: Permission denied

[test2@localhost ~]$ touch /home/test/dir/file4

touch: cannot touch `/home/test/dir/file4': Permission denied

[test2@localhost ~]$

删除权限

[test@localhost ~]$ getfacl /home/test/fil

getfacl: Removing leading '/' from absolute path names

# file: home/test/fil

# owner: test

# group: test

user::rwx

user:test1:r--

group::r-x

mask::r-x

other::---

[test@localhost ~]$ setfacl -x u:test1: /home/test/fil

[test@localhost ~]$ getfacl !$

getfacl /home/test/fil

getfacl: Removing leading '/' from absolute path names

# file: home/test/fil

# owner: test

# group: test

user::rwx

group::r-x

mask::r-x

other::---

[test@localhost ~]$ su - test1

Password:

[test1@localhost ~]$ cat /home/test/fil

cat: /home/test/fil: Permission denied

[test@localhost ~]$ getfacl /home/test/dir/

getfacl: Removing leading '/' from absolute path names

# file: home/test/dir/

# owner: test

# group: test

user::rwx

user:test1:rwx

group::rwx

mask::rwx

other::r-x

default:user::rwx

default:user:test:rwx

default:user:test1:rwx

default:group::rwx

default:mask::rwx

default:other::r-x

[test@localhost ~]$ setfacl -x u:test1 /home/test/dir/

[test@localhost ~]$ getfacl /home/test/dir/

getfacl: Removing leading '/' from absolute path names

# file: home/test/dir/

# owner: test

# group: test

user::rwx

group::rwx

mask::rwx

other::r-x

default:user::rwx

default:user:test:rwx

default:user:test1:rwx

default:group::rwx

default:mask::rwx

default:other::r-x

[test1@localhost ~]$ touch /home/test/dir/file6

touch: cannot touch `/home/test/dir/file6': Permission denied

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。