欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux入门-用户及文件的属性和权限

程序员文章站 2022-06-03 22:35:05
...

在Linux操作系统中,用户及文件的属性和权限是系统安全不可或缺的部分。

用户管理

建立用户:useradd

格式:useradd [options] LOGIN

参数:  -u        ##指定用户的uid

            -g        ##指定用户初始组信息(已存在的组)

            -G        ##指定附加组(已存在的组)

            -c        ##说明、标签

            -d        ##指定用户家目录

            -s        ##指定用户所使用的shell(/etc/shells记录了用户能使用的shell)

删除用户:userdel

格式:userdel [options] LOGIN

参数:  -r        ##删除用户时,同时删除用户家目录及邮件有关的文件

建立组:groupadd

格式:groupadd [options] GROUP

参数   -g      ##指定组ID

删除组:groupdel

格式:groupdel GROUP

查看用户信息:id

更改用户信息:usermod

格式:usermod [options] LOGIN

参数:  -l         ##更改用户名称

            -u        ##更改uid

            -g        ##更改gid

            -G        ##更改附加组

            -aG      ##添加附加组

            -c        ##更改说明

            -d        ##更改家目录

            -md     ##更改家目录及家目录名称

            -s        ##更改shell

            -L        ##冻结帐号

            -U       ##解锁帐号

用户认证信息控制:chage

格式:chage [options] LOGIN

参数:  -d         ##用户密码最后一次修改时间

            -m        ##最短有效期

            -M        ##最长有效期

            -W        ##警告期

            -I           ##用户非活跃天数

            -E          ##帐号到期日,格式 -E "YYYY-MM-DD"


文件管理

查看文件、目录属性:ls -l、ls -ld

d    rwxr-xr-x. 138 root root 8192 Apr  4 14:06 etc

[1]     [2]          [3]   [4]    [5]    [6]        [7]            [8]

[1]         ##文件类型

-            #普通文件

d           #目录

s            #socket套接字

l             #软链接

p            #管道

c            #字符设备

b            #块设备

[2]        ##读写权限

rwx r-x r-x

前三位是拥有者能做的动作(u)

中间三位是所属组的组成员能做的动作(g)

后三位是其他人能做的动作(o)

[3]        ##文件内容被系统记录的次数 、子目录个数

[4]        ##拥有者

[5]        ##所属组

[6]        ##文件大小、目录中内容的属性的大小

[7]        ##文件最后一次被更改的时间、目录中文件增减或更名的时间

[8]        ##文件名称、目录名称

用户、组的更改

更改拥有者:chown

更改所在组:chgrp

格式:COMMAND [OPTION]... NAME FILE            ##-R:递归修改(目录需要加此参数)

权限的识别

ls -l 中 2-10字符为文件权限

r表示可读:对文件表示可以查看文件内容,对目录表示可以ls查看目录中存在的文件名称

w表示可写:对文件表示可以更改文件的内容,对目录表示可以删除目录中的子文件或子目录

x表示可执行:对文件表示可以开启文件中记录的程序,对目录表示可以进入目录中

修改权限:chmod

chmod [ugo+-=rwx] FILE

也可以用三位数字分别表示:拥有者、所属组、其他人的权限

r=4,w=2,x=1例:u=rw-=6,g=r--=4,o=r--=4,644

特殊权限

stickyid

o+t   (=1)     ##只针对目录,目录有此权限时,目录中的文件只能被拥有者删除


sgid

g+s   (=2)   ##针对目录时,目录有此权限时,目录中的都归属目录所在组。针对二进制文件时,文件执行时,以所属组的身份执行


suid

u+s    (=4)  ##针对文件,文件记录动作在执行时,以文件拥有者身份执行


权限列表acl

    当ls-l命令看到的文件权限最后有“+”,表示特殊权限列表开启

[[email protected] mnt]# ls -l
-rw-rwxr--+ 1 root root 0 Apr 11 14:30 file

    查看权限列表:getfacl

    设定权限列表:setfacl

-m:设置权限

-x:删除权限

-b:关闭权限列表

[[email protected] mnt]# setfacl -m u:jinx:rwx file        ##设定jinx用户对file文件拥有rwx权限
[[email protected] mnt]# setfacl -m g:jinx:rw file          ##设定jinx组对file文件拥有rw权限
[[email protected] mnt]# getfacl file                               ##查看file文件的权限列表
# file: file                                                                ##文件名称
# owner: root                                                         ##文件的拥有者
# group: root                                                         ##所属组
user::rw-                                                                 ##拥有者拥有的权限
user:jinx:rwx                                                          ##用户jinx所拥有的权限
group::r--                                                               ##所属组拥有的权限
group:jinx:rw-                                                        ##jinx组的用户拥有的权限
mask::rwx                                                               ##权限最大值
other::r--                                                                 ##其他人拥有的权限

[[email protected] mnt]# setfacl -x u:jinx file        ##删除用户jinx对文件的特殊权限
[[email protected] mnt]# setfacl -x g:jinx file        ##删除组jinx对文件的特殊权限
[[email protected] mnt]# setfacl -b file                  ##关闭权限列表

##当设定了acl权限列表后,如果使用chmod命令更改文件的权限,会更改mask值

[[email protected] mnt]# setfacl -m m:rwx file        ##更改mask值


如果针对目录,可以设定在设定权限列表后,该目录内新建的文件拥有的特殊权限,需要加“d:”

[[email protected] mnt]# setfacl -m d:u:jinx:rwx linux
[[email protected] mnt]# getfacl linux
# file: linux
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx                        ##default属性:
default:user:jinx:rwx                  ##目录内新建文件的默认权限
default:group::r-x                       ##对已经存在的文件不生效
default:mask::rwx
default:other::r-x


实验:

  1. 有三个部门,shengchan、caiwu、jishu
  2. tom是生产部门的员工
  3. harry是财务部门的员工
  4. leo是技术部门的员工
  5. admin是管理员
  6. /pub目录为公共存储目录,所有用户可读、写、执行
  7. /sc目录为生产部存储目录,只能对生产部人员写入,并生产部人员建立文件自动归属shengchan组
  8. /cw目录为财务部存储目录,只能对财务部人员写入,并财务部人员建立文件自动归属caiwu组
  9. admin用户对/sc和/cw目录拥有可读写执行权限
实验
[[email protected] /]# groupadd shengchan                        ##创建组shengchan
[[email protected] /]# groupadd caiwu                            ##创建组caiwu
[[email protected] /]# groupadd jishu                            ##创建组jishu
[[email protected] /]# useradd -G shengchan tom                  ##创建用户tom,附加组shengchan
[[email protected] /]# useradd -G caiwu harry                    ##创建用户harry,附加组caiwu
[[email protected] /]# useradd -G jishu leo                      ##创建用户leo,附加组技术
[[email protected] /]# useradd admin                             ##创建用户admin
[[email protected] /]# mkdir /pub /sc /cw                        ##创建目录,/pub,/sc,/cw
[[email protected] /]# chmod 1777 /pub                           ##设定/pub目录的权限为1777,所有人可读写进入目录,但只能删除自己的文件
[[email protected] /]# chgrp -R shengchan /sc                    ##设定/sc目录的所属组为shengchan组
[[email protected] /]# chgrp -R caiwu /cw                        ##设定/cw目录的所属组为caiwu组
[[email protected] /]# chmod 3770 /sc /cw                        ##设定/sc、/cw目录的权限为3770,本部门组成员可读写进入目录,
                                                                但只能删除自己的文件,创建的文件所属本部门组
[[email protected] /]# chown -R admin /sc /cw                    ##设置admin用户为/sc、/cw目录的拥有者
[[email protected] /]# setfacl -m d:m:r-- /sc /cw                ##设定/sc、/cw目录的mask值r--,同部门用户只能查看,无法修改他人文件