Linux 用户账号与权限管理
在Linux
中,如何管理用户、管理权限?请看下文,谢谢配合。
用户、组概述
用户分类
超级用户:root,人为交互最高权限用户,
system
为最高权限用户。普通用户:通过管理管理员创建,权限受到一定限制。
程序用户:不允许登陆,维持系统或某个程序的正常运行。
用户配置文件
- /etc/passwd:包含用户账号的基本信息
[root@localhost ~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
账号名称:密码占位符:UID:GID:用户说明:家目录:登陆shell
- /etc/shadow:包含用户账号的密码信息(影子文件)
[root@localhost ~]# head -1 /etc/shadow
root:$6$4/ne8o5V38hiA2jr$6SclA1hllj8FPXqyMtfof5T4NMH1gJeDQ31AfoR4wapYPBQWlbZQKKPkuUBWoqgwA1GsuHW.1lTg59tyfrwvC/::0:99999:7:::
账号名称:密码信息:上次修改密码的时间:密码最短有效天数:密码最长有效天数:提前7天警告密码将过期:密码过期后多少天内禁用此用户:账号失效时间:保留字段
- 个别详细解释
密码信息
:MD5加密的密码字串信息;为*
或!!
时,被锁定,不能登陆;为空,无密码。
上次修改密码的时间
:表示从1970年1月1日到最近一次修改密码那天所间隔的天数。
密码最短有效天数
:修改密码后,最少经过多少天才能再次修改密码。默认为0
,不限制。
密码最长有效天数
:修改密码后,经过该天数,必须再次修改密码。默认为99999
,不限制。
提前7天警告密码将过期
:默认值为7
。
账号失效时间
:指定用户账号作废的天数,从1970年1月1日起计算。
组分类
基本组(私有组):伴随用户的创建而创建,与用户同名。用户只能属于一个基本组,在
/etc/passwd
中查看。附加组(公共组):用户可属于多个附加组,在
/etc/group
中查看。
组配置文件
/etc/group:包含组的基本信息
/etc/gshadow:包含组的密码信息
1.查询root
组包含哪些用户
[root@localhost ~]# grep "^root" /etc/group
root:x:0:
2.查询那些组包含root
用户
[root@localhost ~]# grep "root" /etc/group
root:x:0:
UID 和 GID
- UID:用户识别号
用户 | UID 范围 |
---|---|
root | 0 |
程序用户 | 1 ~ 999 |
普通用户 | 1000 ~ 60000 |
- GID:组识别号
用户、组管理
useradd
- 添加用户账号
-u
:指定UID
-d
:指定家目录位置
-e
:指定账户失效时间,YYYY-MM-DD
或天数
。
-g
:指定基本组名称或GID
-G
:指定附加组
-M
:不创建宿主目录
-s
:指定用户的登陆shell
,/bin/bash
可登录,/sbin/nologin
不可登录。
[root@localhost ~]# useradd -d /zhangsan zhangsan
[root@localhost ~]# useradd -e 2020-01-01 -s /sbin/nologin ftpuser
用户账号初始配置文件
- 来源:模板目录
/etc/skel
- 用途:可以做一些自动运行的后台管理任务
[root@localhost ~]# ls -a /zhangsan/
. .. .bash_logout .bash_profile .bashrc
.bash_logout
:每次退出登陆时执行
.bash_profile
:用户每次登陆时被执行
.bashrc
:每次加载/bin/bash
时执行,包括登录系统。
- 每次登出时清空历史记录
[root@localhost ~]# vi .bash_logout
# ~/.bash_logout
history -c
passwd
- 设置、更改密码
-d
:清空账户密码
-l
:锁定账户
-S
:查看账户状态
-u
:解锁账户
[root@localhost ~]# passwd zhangsan
Changing password for user zhangsan.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# passwd -l zhangsan
Locking password for user zhangsan.
passwd: Success
[root@localhost ~]# passwd -S zhangsan
zhangsan LK 2019-08-20 0 99999 7 -1 (Password locked.)
[root@localhost ~]# passwd -u zhangsan
Unlocking password for user zhangsan.
passwd: Success
[root@localhost ~]# passwd -S zhangsan
zhangsan PS 2019-08-20 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@localhost ~]# passwd -d zhangsan
Removing password for user zhangsan.
passwd: Success
usermod
- 修改账户属性,参数类似
useradd
-u
:修改用户UID
-d
:修改家目录位置
-e
:修改账号失效时间
-s
:指定用户的登陆shell
-l
:更改用户登陆名称
-L
:锁定账户
-U
:解锁账户
-g
:修改用户的基本组(或GID
)
-G
:修改用户的附加组(或GID
)
[root@localhost ~]# tail -1 /etc/passwd
zhangsan:x:1001:1001::/zhangsan/:/bin/bash
[root@localhost ~]# mv /zhangsan/ /home/
[root@localhost ~]# usermod -d /home/zhangsan/ zhangsan
[root@localhost ~]# tail -1 /etc/passwd
zhangsan:x:1001:1001::/home/zhangsan/:/bin/bash
[root@localhost ~]# usermod -L zhangsan
[root@localhost ~]# passwd -S zhangsan
zhangsan LK 2019-08-20 0 99999 7 -1 (Password locked.)
[root@localhost ~]# usermod -U zhangsan
[root@localhost ~]# passwd -S zhangsan
zhangsan PS 2019-08-20 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@localhost ~]# usermod -l lisi zhangsan
[root@localhost ~]# tail -1 /etc/passwd
lisi:x:1001:1001::/home/zhangsan/:/bin/bash
userdel
- 删除用户账号
-r
:同时删除家目录
[root@localhost ~]# userdel -r zhangsan
[root@localhost ~]# ls /home/zhangsan
ls: cannot access /home/zhangsan: No such file or directory
groupadd
- 添加组账号
-g
:指定GID
[root@localhost ~]# groupadd ftpusers
[root@localhost ~]# tail -1 /etc/group
ftpusers:x:1001:
[root@localhost ~]# groupadd -g 1005 sftpusers
[root@localhost ~]# tail -2 /etc/group
ftpusers:x:1001:
sftpusers:x:1005:
gpasswd
- 添加、设置、删除组成员
-a
:添加组成员
-d
:删除组成员
-M
:指定组成员,多个以,
分隔,会覆盖原有的。
[root@localhost ~]# useradd ftp1
[root@localhost ~]# useradd ftp2
[root@localhost ~]# useradd ftp3
[root@localhost ~]# useradd ftp4
[root@localhost ~]# useradd ftp5
[root@localhost ~]# echo "000000" | passwd --stdin ftp1
Changing password for user ftp1.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo "000000" | passwd --stdin ftp2
Changing password for user ftp2.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo "000000" | passwd --stdin ftp3
Changing password for user ftp3.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo "000000" | passwd --stdin ftp4
Changing password for user ftp4.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo "000000" | passwd --stdin ftp5
Changing password for user ftp5.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# gpasswd -a ftp1 ftpusers
Adding user ftp1 to group ftpusers
[root@localhost ~]# gpasswd -a ftp2 ftpusers
Adding user ftp2 to group ftpusers
[root@localhost ~]# groups ftp1
ftp1 : ftp1 ftpusers
[root@localhost ~]# groups ftp2
ftp2 : ftp2 ftpusers
[root@localhost ~]# grep "^ftpusers" /etc/group
ftpusers:x:1001:ftp1,ftp2
[root@localhost ~]# gpasswd -M ftp3,ftp4,ftp5 ftpusers
[root@localhost ~]# grep "^ftpusers" /etc/group
ftpusers:x:1001:ftp3,ftp4,ftp5
groupdel
- 删除组账号
[root@localhost ~]# groupdel sftpusers
用户、组查询
id
- 查询用户账号的身份标识
id [username]
[root@localhost ~]# id root
uid=0(root) gid=0(root) groups=0(root)
groups
- 查询用户账号所属的组
groups [username]
[root@localhost ~]# groups root
root : root
finger
- 查询用户账号的登陆属性
finger [username]
[root@localhost ~]# finger root
Login: root Name: root
Directory: /root Shell: /bin/bash
On since Tue Aug 20 16:58 (CST) on pts/0 from 192.168.128.1
6 seconds idle
No mail.
No Plan.
可能需要安装:yum install finger -y
w、who、users
- 查询当前主机的用户登陆情况
[root@localhost ~]# w
17:35:34 up 2:48, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.128.1 16:58 6.00s 0.21s 0.01s w
[root@localhost ~]# who
root pts/0 2019-08-20 16:58 (192.168.128.1)
[root@localhost ~]# users
root
last
- 查询最近登陆的用户信息
[root@localhost ~]# last
root pts/0 192.168.128.1 Tue Aug 20 17:36 still logged in
reboot system boot 3.10.0-693.el7.x Tue Aug 20 17:36 - 17:37 (00:01)
reboot system boot 3.10.0-693.el7.x Fri Aug 16 17:18 - 17:21 (00:03)
wtmp begins Fri Aug 16 17:18:08 2019
文件、目录权限及归属
概述
[root@promote ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 846 Aug 16 17:15 /etc/passwd
-
:文件类型,-
普通文件、d
目录、b
块设备文件、c
字符设备文件、l
链接文件。
rw-
:User,属主用户对文件的访问权限。
r--
:Group,属组内成员对文件的访问权限。
r--
:Other,其他用户对文件的访问权限。
.
:与SELinux
有关
root
:文件属主
root
:文件属组
chmod
- 设置文件、目录权限
chmod [ugoa] [+-=] [rwx] 文件或目录
ugoa
:u
宿主,g
属组,o
其他用户,a
所有用户。
+-=
:+
增加权限,-
减少权限,=
设置对应的权限。
rwx
:r
读,w
写,x
执行。
[root@localhost ~]# ls -l test.txt
-rw-r--r--. 1 root root 0 Aug 20 18:19 test.txt
[root@localhost ~]# chmod g+w,o+w test.txt
[root@localhost ~]# ls -l test.txt
-rw-rw-rw-. 1 root root 0 Aug 20 18:19 test.txt
chmod nnn 文件或目录
nnn
:代表ugo分别设置的权限值
u | g | o |
---|---|---|
4 | 2 | 1 |
[root@localhost ~]# chmod 644 test.txt
[root@localhost ~]# ls -l test.txt
-rw-r--r--. 1 root root 0 Aug 20 18:19 test.txt
chown
- 设置文件、目录的归属
chown [选项] [属主][:[属组]] 文件或目录
-R
:递归修改
[root@localhost ~]# mkdir /opt/test
[root@localhost ~]# touch /opt/test/test{1,2}.txt
[root@localhost ~]# ls -lR /opt/
/opt/:
total 0
drwxr-xr-x. 2 root root 40 Aug 20 18:26 test
/opt/test:
total 0
-rw-r--r--. 1 root root 0 Aug 20 18:26 test1.txt
-rw-r--r--. 1 root root 0 Aug 20 18:26 test2.txt
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# echo "000000" | passwd --stdin zhangsan
Changing password for user zhangsan.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# chown -R zhangsan /opt/test/
[root@localhost ~]# ls -lR /opt/
/opt/:
total 0
drwxr-xr-x. 2 zhangsan root 40 Aug 20 18:26 test
/opt/test:
total 0
-rw-r--r--. 1 zhangsan root 0 Aug 20 18:26 test1.txt
-rw-r--r--. 1 zhangsan root 0 Aug 20 18:26 test2.txt
[root@localhost ~]# chown -R :zhangsan /opt/test/
[root@localhost ~]# ls -lR /opt/
/opt/:
total 0
drwxr-xr-x. 2 zhangsan zhangsan 40 Aug 20 18:26 test
/opt/test:
total 0
-rw-r--r--. 1 zhangsan zhangsan 0 Aug 20 18:26 test1.txt
-rw-r--r--. 1 zhangsan zhangsan 0 Aug 20 18:26 test2.txt
[root@localhost ~]# chown -R root:root /opt/test/
[root@localhost ~]# ls -lR /opt/
/opt/:
total 0
drwxr-xr-x. 2 root root 40 Aug 20 18:26 test
/opt/test:
total 0
-rw-r--r--. 1 root root 0 Aug 20 18:26 test1.txt
-rw-r--r--. 1 root root 0 Aug 20 18:26 test2.txt
umask
- 指定用户在新建文件或目录时的权限默认值,指默认值需要减掉的权限。777-022=755,666-022=644。
默认:umask 022
Linux 用户账号与权限管理的更多相关文章
- Linux用户组和权限管理
Linux用户组和权限管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux的安全模型 1>.安全3A 这并不是Linux特有的概念,在很多领域都有3A的概念 ...
- Linux 服务器用户权限管理改造方案与实施项目
Linux 服务器用户权限管理改造方案与实施项目 在了解公司业务流程后,提出权限整改方案改进公司超级权限root泛滥的现状. 我首先撰写方案后,给boss看,取得boss的支持后,召集大家开会讨论. ...
- Linux用户和权限——管理文件权限的命令
Linux用户和权限——管理文件权限的命令 摘要:本文主要学习了Linux中修改文件权限的命令. chown命令 chown命令,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件( ...
- Linux用户和权限——管理用户和用户组的命令
Linux用户和权限——管理用户和用户组的命令 摘要:本文主要学习了在Linux系统中管理用户和用户组的命令. useradd命令 useradd命令可以用来创建新用户. 基本语法 useradd [ ...
- linux用户及权限管理
[文件管理.管道.用户及组管理.用户及权限管理]\用户及组管理 用户与组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这 ...
- Linux用户和权限管理看了你就会用啦
前言 只有光头才能变强 回顾前面: 看完这篇Linux基本的操作就会了 没想到上一篇能在知乎获得千赞呀,Linux也快期末考试了,也有半个月没有写文章了.这篇主要将Linux下的用户和权限知识点再整理 ...
- Linux账号和权限管理
一. 用户和组的管理 - Linux中用户种类 种类 特点 root 是管理员,拥有至高无上的权限,不受限制,UID为0 普通用户 管理员创建的用户,受权限限制,UID一般从500开始,可以登录系统 ...
- 简单的Linux的用户权限管理
企业生产环境用户权限集中管理方案案例 建立中要添加如下的项目经验: 在了解公司业务流程后,提出权限整改解决方案,改进公司超级用户Root权限泛滥的问题. 我首先写好方案后,给老大看,取得老大的支持后, ...
- linux笔记:linux常用命令-权限管理命令
一个文件的权限只有root和所有者可以更改. 权限管理命令:chmod(改变文件或目录的权限) 权限的数字表示: 用权限加减的方式改变权限(u代表所有者,g代表所属组,o代表其他人,a代表所有人): ...
随机推荐
- wms证书配置操作
1. 在应用的/home下 把证书cp到/usr/local/apache2/conf 2. 打开文件/usr/local/apache2/conf/extra/httpd-ssl.conf,找到 ...
- cisco路由器telnet及设置用户名和密码的几种方式
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/sxajw/article/details ...
- bilibili投屏到电脑
bilibili投屏到TV B栈上有丰富的视频资源,电视盒子小米,自带匹配的投屏功能. 但是如何将哔哩哔哩投屏到电脑上? bilibili投屏到PC上 万能的知乎给出了答案. https://www. ...
- beetl模版for循环渲染字符串
beetl for循环渲染html字符串的方式, beetl if条件判断输出, beet自定义标签和标签引用, beetl html赋值, beetl渲染json,beetl注释.变量定义, 更多文 ...
- Delphi根据不同分隔符获取字符串内容
function GetFieldValue(separator:Char;strLine: string; nNum: Integer): string; var Strs :TStrings; R ...
- This is this
首先,我们来了解一下 this 的几种绑定方式: this的默认绑定: 当一个函数没有明确的调用对象的时候,即作为独立函数调用时,this绑定到全局window对象. function func() ...
- Java reactor响应式编程
转载自:https://www.cnblogs.com/lixinjie/p/a-reactive-streams-on-jvm-is-reactor.html 响应式编程 作为响应式编程方向上的第一 ...
- 深入分析——HashSet是否真的无序?(JDK8)
HashSet 是否无序 (一) 问题起因: <Core Java Volume I-Fundamentals>中对HashSet的描述是这样的: HashSet:一种没有重复元素的无序集 ...
- Navicat 12.1激活
去官网下载 https://www.navicat.com.cn/download/navicat-premium 然后下载这个破解包 第一个是整合了 navicat121_premium_cs_x6 ...
- Mybatis 批量插入带oracle序列例子+ORA-02287: 此处不允许序号
在使用mybatis进行批量插入时,发现对于使用Oracle的自动增长序列时提示 : ORA-02287: 此处不允许序号 的错误,下面的这种使用可以解决问题: <!-- 批量插入 --> ...