linux&&用户账号与权限管理
- 管理用户和组账号
- Linux如何创建用户?
- 每个用户在登录服务器时都经历过哪几个配置文件?
- 如何修改已创建用户账号的属性?
- 用户账号有哪几种类型?都是用来做什么的?
- Linux如何为不同用户设置不同的权限?
- 如何删除用户账号?
- 与用户账号有关的基本信息或目录有哪些?
- 知道一个用户账号名称,如何查询相关信息?
- /etc/passwd文件中各列代表什么含义
- /etc/shadow文件有什么用?
- Linux中组账号有什么用?
- Linux如何创建组账号?
- 如何对组账号中的组成员进行添加、删除操作?
- 组账号有哪几种类型?都是用来做什么的?
- 如何删除组账号?
- Linux中组账号如何管理用户?
- 什么是UID?什么是GID?
- 与组账号有关的基本信息或目录有哪些?
- 管理目录和文件的属性
管理用户和组账号
Linux如何创建用户?
创建新用户duanfuqiang
useradd duanfuqiang
命令选项
-u : 指定UID标记号
-d : 指定宿主目录,缺省为"/home/用户名"
-e : 指定账号失效时间
-g : 指定用户的基本组名
-G : 指定用户的附加组名
-M : 不为用户创建并初始化宿主目录
-s : 指定用户的登录shell
/sbin/nologin.当使用“-s /sbin/nologin”时,创建的用户不能登录服务器
"-g"与“-G”指定的组名必须提前创建完成。
更改用户登录口令
passwd duanfuqiang
命令选项
-d : 清空用户的密码,使之无需密码即可登录
-l : 锁定用户账号
-S : 查看用户账号状态是否被锁定
-u : 解锁用户账号
每个用户在登录服务器时都经历过哪几个配置文件?
每个新创建的用户在其宿主目录下均具有部分基础配置文件,配置文件来自"/etc/skel"目录下。
root@dfq:~# ls /etc/skel/ -a
. .. .bash_logout .bashrc .profile
root@dfq:/home/git# ls -a
. .. .bash_history .cache gitkey gitosis .gitosis.conf repositories .ssh .viminfo
其中,文件“bash_history”中存放用户在服务器上执行过的历史命令
初始化配置文件
~/.bash_profile : 用户每次登录时执行
~/.bashrc : 用户每次进入新的bash环境时执行
~/.bash_logout : 用户每次退出登录时执行
如何修改已创建用户账号的属性?
usermod duanfuqiang
借助usermod命令即可
命令选项
-l : 更改用户账号的登录名称
-L : 锁定用户账号
-U : 解锁用户账号
其中选项“-u、-d、-e、-g、-G、-s”与useradd命令中的选项含义相同
用户账号有哪几种类型?都是用来做什么的?
超级用户
root.管理员用户,具有操作系统的最高权限
普通用户
常规登录控制服务器的账号。仅具备操作系统的部分权限,仅能进行权限范围以内的操作。
程序用户
程序在服务器上运行时,对服务器进行操作、交互时使用的账号,仅具备部分权限(不能用于登录服务器)。如mysql的mysql账号,nginx的www-data等。
Linux如何为不同用户设置不同的权限?
如何删除用户账号?
使用userdel命令即可
userdel duanfuqiang
命令选项
-r : 删除用户账号时以递归的方式连同用户的宿主目录一并删除
与用户账号有关的基本信息或目录有哪些?
/home/xxx : 用户账号的宿主目录
/etc/shadow : 用户账号的口令信息
/etc/passwd : 用户账号的信息
/etc/group : 用户账号的组信息
/var/mail/xxx : 用户账号的邮件信息
知道一个用户账号名称,如何查询相关信息?
使用id命令查询用户的身份标识
id duanfuqiang
查询用户账号的uid、gid、groups等信息
root@dfq:/home/git# id git
uid=107(git) gid=113(git) groups=113(git),107(ssh)
使用groups命令查询用户所属的组
groups duanfuqiang
查询用户账号的组名称信息
root@dfq:/home/git# groups git
git : git ssh
使用finger命令查询用户账号的详细信息
finger duanfuqiang
root@dfq:/home/git# finger git
Login: git Name:
Directory: /home/git Shell: /bin/bash
Never logged in.
No mail.
No Plan.
使用user、w、who命令查询已登录到服务器的用户信息
root@dfq:/home/git# w
17:48:39 up 654 days, 7:47, 1 user, load average: 0.09, 0.05, 0.06
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 8.8.8.8 0.00s 0.20s 0.00s w
root@dfq:/home/git# users
root
root@dfq:/home/git# who
root pts/0 2019-12-12 15:53 (8.8.8.8)
/etc/passwd文件中各列代表什么含义
root❌0:0:root:/root:/bin/bash
用户账号:密码占位符:用户账号ID:基本组账号ID:用户说明:宿主目录:登录shell
/etc/shadow文件有什么用?
每一行对应一个用户的密码记录,保存用户的密码、账号有效期等信息
用户名:经过处理的密文密码:密码有效期等
Linux中组账号有什么用?
对具有相同权限的多个用户进行统一管理。
一次设置组权限,同时设置多个用户权限。
一个用户可以归属于多个组
Linux如何创建组账号?
groupadd groupdfq
如何对组账号中的组成员进行添加、删除操作?
使用gpasswd命令即可
命令选项
-a : 向组内添加一个用户
gpasswd -a dfq groupdfq
-d : 从组内删除一个用户成员
-M : 定义组成员列表,以逗号隔开
gpasswd -M dfq1,dfq2,dfq3 groupdfq
"-M"命令选项,将清空组内的旧组成员列表!!!
组账号有哪几种类型?都是用来做什么的?
基本组(私有组)
用户创建最初存在的组
附加组(公共组)
用户创建之后更改加入的组
一个用户必须有基本组
如何删除组账号?
使用groupdel命令即可
groupdel groupdfq
若存在某个用户将该目标组作为基本组,则该组删除失败
Linux中组账号如何管理用户?
什么是UID?什么是GID?
UID(user identify,用户识别号)
GID(group identify,组识别号)
系统通过用户识别号UID识别不同用户,而不是用户名;GID同样如此
与组账号有关的基本信息或目录有哪些?
/etc/group : 保存组账号基础信息
组名:占位符:组id:哪些用户将该组作为附加组
/etc/gshadow : 保存组账号的密码信息