Linux基础-管理用户和文件权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础-管理用户和文件权限相关的知识,希望对你有一定的参考价值。

(一)用户和组

用户账号:

超级用户:root用户

普通用户:由root用户或其他管理员创建,只在自己宿主目录中有完全权限

程序用户:不允许登录到系统,如:bin、daemon、ftp、mail

组账号:一个用户至少属于一个组,称为该用户的基本组。如果该用户同时属于其他组,这些组被称为附加组

UID、GID:用户标识号、组标识号,在配置文件“/etc/login.defs”中

root用户为0、程序用户1-499、普通用户500-60000

 

一、用户管理

用户账号文件:

/etc/passwd

保存用户账号信息,任何用户都可以读取,但只有root用户可以更改。每一行包含用:分隔的七个字段

●账号名称:加密密码字符串/占位符X:UID:GID:用户全名:宿主目录:登录Shell信息

[[email protected] ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
...

●/etc/shadow

保存用户账号的密码信息,只有root用户能读取,但不能更改。每一行包含九个字段,如下:

账号名称:

MD5加密后字符串:为“*”或“!!”表示当前用户不能登陆,若该字段为空,则无需密码即可登录

上次修改密码的时间:从19701-1-1到最近一次修改密码的天数

密码的最短有效天数:默认为0,表示不限制

密码的最长有效天数:默认为99999,表示不限制

提前多少天警告用户口令过期:默认为7

密码过期后多少天内禁用此用户

账号失效时间:指定天数,默认为空,表示永久使用

保留字段

[[email protected] ~]# cat /etc/shadow
root:$6$l959kDSV5iIlNPck$eP4JiHqk.MWFg1wc4Rl5HjPKu8Cye/7Ygk4oPzEKlZ9inrk3my.Gw7Klfyy44F20exPUf4.TeLSOgTfDOlV7c0:17247:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
adm:*:15980:0:99999:7:::
...

管理命令:

1.useradd 添加用户

-u 指定UID

-d 指定宿主目录位置

-e 指定账户失效时间

-g 指定用户的基本组名(GID)

-G 指定用户的附加组名(GID)

-M 不建立使用者目录

●-s 指定登录的Shell

创建用户bby,将登录Shell指定为/sbin/nologin

[[email protected]~]#useradd -s /sbin/nologin bby

2.passwd 设置密码

-d 清空指定用户密码

-l 锁定账户

-S 查看账号状态

-u 解锁账户

root用户可以对指定账户的密码进行管理,普通用户只能修改自己的密码

[r[email protected] ~]# passwd bby

更改用户 bby 的密码 。

新的 密码:

无效的密码: 过于简单化/系统化

无效的密码: 过于简单

重新输入新的 密码:
[[email protected] ~]# passwd -l bby

锁定用户 bby 的密码 。

passwd: 操作成功

[[email protected] ~]# passwd -S bby

 

3.usermod 修改账号属性

与useradd命令选项相对应

-l 更改登录名称

-L 锁定用户账户

-U 解锁账户

 

4.userdel 删除账号

-r 删除宿主目录

 

5.初始配置文件来自于/etc/skel/

“.bash_logout”每次退出登陆时执行

“.bash_profile”每次登录时执行

“.bashrc”每次加载/bin/bash程序时执行

 

二、组管理

组账号文件

id命令可以查看当前用户所对应的基本组、附加组信息

/etc/group

组名称:管理员加密密码/占位符X:GID:账号列表

[[email protected] ~]# cat /etc/group

root:x:0:

bin:x:1:bin,daemon

daemon:x:2:bin,daemon

sys:x:3:bin,adm

 

/etc/gshadow

组名称:管理员加密密码:管理员账号:账号列表

[[email protected] ~]# cat /etc/gshadow

root:::

bin:::bin,daemon

daemon:::bin,daemon

sys:::bin,adm

 

查看root组内成员

[[email protected]~]#grep "^root" /etc/group

 

管理命令

1.groupadd 添加组账号

2.gpasswd 添加删除组成员

    -a 把bby加入到root组中

[[email protected] ~]# gpasswd -a bby root

Adding user bby to group root

[[email protected] ~]# grep "^root" /etc/group

    -d 把bby从root组中删除

[[email protected]~]#gpasswd -d bby root

    -M 同时添加多个用户

3.groupdel 删除组账号

[[email protected]~]#groupdel bby

三、用户和组账号查询

1.groups+用户名   查询某个用户账户所属的组 

2.finger 查询用户账号的详细信息

    -l 多行显示,可以是未登录用户

3.users、w、who 查询当前登录到主机的用户信息

    与单独执行的finger命令类似

    users 只列出用户名

    w 列出用户名、终端、执行的命令

    who 写出用户名、终端、登陆时间、来源地点

 

(二)文件权限和归属

权限:读取、写入、可执行

归属:属主、属组

  1. 查看文件/目录的权限和归属

     

[[email protected] ~]# ls -ld /etc/passwd
-rw-r--r--. 1 root root 1371 3月  23 01:37 /etc/passwd

第一个字符:文件类型,- 普通文件、d 目录、b 块设备文件、c 字符设备文件、l 链接文件

第2-4个字符:属主用户访问权限

第5-7个字符:属组内用户的访问权限

第8-10个字符:其他用户的访问权限

 r、w、x 分别表示可读、可写、可执行

[[email protected] root]$ ls -l /etc/shadow
----------. 1 root root 921 3月  25 02:56 /etc/shadow
[[email protected] root]$ cat /etc/shadow
cat: /etc/shadow: 权限不够

2.设置权限 chmod -R 递归设置子目录

字符形式:rwx

数字形式:r、w、x分别表示为4、2、1

chmod [ugoa] [+-=] [rwx] 文件/目录

chmod nnn 文件/目录

 

u:代表文件属主

g:代表文件属组内的用户

o:代表其他用户

a:代表所有用户(ugo总和)

+-=:增加、减少、设置相应权限

去除mymkdir文件的x权限

[[email protected] ~]# ls -l mymkdir
-rwxr-xr-x. 1 root root 49384 3月  25 03:37 mymkdir
[[email protected] ~]# chmod ugo-x mymkdir 
[[email protected] ~]# ls -l mymkdir
-rw-r--r--. 1 root root 49384 3月  25 03:37 mymkdir

为属主用户添加执行权限,去除其他用户的读取权限

[[email protected] ~]# chmod u+x,o-r mymkdir 
[[email protected] ~]# ls -l mymkdir
-rwxr-----. 1 root root 49384 3月  25 03:37 mymkdir

重新设置mymkdir的权限

[[email protected] ~]# chmod 755 mymkdir 
[[email protected] ~]# ls -l mymkdir
-rwxr-xr-x. 1 root root 49384 3月  25 03:37 mymkdir

3.设置归属

chown:设置属主和属组    -R 递归设置子目录

chown [属主] 文件/目录

chown [:属组] 文件/目录

chown [属主:属组] 文件/目录    同时设置属主和属组

[[email protected] ~]# chown bby mymkdir 
[[email protected] ~]# ls -l mymkdir
-rwxr-xr-x. 1 bby root 49384 3月  25 03:37 mymkdir
[[email protected] ~]# chown :wheel mymkdir 
[[email protected] ~]# ls -l mymkdir
-rwxr-xr-x. 1 bby wheel 49384 3月  25 03:37 mymkdir
[[email protected] ~]# chown root:daemon mymkdir 
[[email protected] ~]# ls -l mymkdir
-rwxr-xr-x. 1 root daemon 49384 3月  25 03:37 mymkdir

chgrp:设置属组

chgrp [属组] 文件/目录

 

4.附加权限

SET位权限:设置可执行程序或脚本文件,SUID给属主用户增加SET位权限,SGID给属组用户增加SET位权限

chmod u+/-s,g+/-s 设置SET权限后,文件属性对应位置的x将变成s

SUID、SGID对应八进制数字4、2 ,如“4755”“2755”“6755”

[[email protected] ~]# chmod g+s mymkdir 
[[email protected] ~]# ls -l mymkdir
-rwxr-sr-x. 1 root daemon 49384 3月  25 03:37 mymkdir

粘滞位权限:目录设置了粘滞位权限后,即使用户对目录有写入权限,也不能删除目录中其他用户的数据,比如“/tmp”目录,存放临时数据

设置粘滞位权限后,文件属性对应位置的x将变成t

[[email protected] ~]# ls -ld /var/tmp/
drwxrwxrwt. 2 root root 4096 3月  24 20:04 /var/tmp/

chmod +t/-t 数字形式为1、0 实现添加移除

[[email protected] ~]# chmod 1777 /opt 
[[email protected] ~]# ls -ld /opt/
drwxrwxrwt. 3 root root 4096 3月  22 20:29 /opt/

以上是关于Linux基础-管理用户和文件权限的主要内容,如果未能解决你的问题,请参考以下文章

Linux基础-管理用户和文件权限

《Linux基础》04. 用户管理 · 用户组 · 相关文件 · 权限管理

Linux基础 08Linux用户权限相关命令

Linux基础--权限管理

Linux之小基础-用户和权限管理

Linux之小基础-用户和权限管理