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] 文件或目录

ugoau宿主,g属组,o其他用户,a所有用户。

+-=+增加权限,-减少权限,=设置对应的权限。

rwxr读,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 用户账号与权限管理的更多相关文章

  1. Linux用户组和权限管理

    Linux用户组和权限管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.Linux的安全模型 1>.安全3A 这并不是Linux特有的概念,在很多领域都有3A的概念 ...

  2. Linux 服务器用户权限管理改造方案与实施项目

    Linux 服务器用户权限管理改造方案与实施项目 在了解公司业务流程后,提出权限整改方案改进公司超级权限root泛滥的现状. 我首先撰写方案后,给boss看,取得boss的支持后,召集大家开会讨论. ...

  3. Linux用户和权限——管理文件权限的命令

    Linux用户和权限——管理文件权限的命令 摘要:本文主要学习了Linux中修改文件权限的命令. chown命令 chown命令,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件( ...

  4. Linux用户和权限——管理用户和用户组的命令

    Linux用户和权限——管理用户和用户组的命令 摘要:本文主要学习了在Linux系统中管理用户和用户组的命令. useradd命令 useradd命令可以用来创建新用户. 基本语法 useradd [ ...

  5. linux用户及权限管理

    [文件管理.管道.用户及组管理.用户及权限管理]\用户及组管理 用户与组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这 ...

  6. Linux用户和权限管理看了你就会用啦

    前言 只有光头才能变强 回顾前面: 看完这篇Linux基本的操作就会了 没想到上一篇能在知乎获得千赞呀,Linux也快期末考试了,也有半个月没有写文章了.这篇主要将Linux下的用户和权限知识点再整理 ...

  7. Linux账号和权限管理

    一. 用户和组的管理  - Linux中用户种类 种类 特点 root 是管理员,拥有至高无上的权限,不受限制,UID为0 普通用户 管理员创建的用户,受权限限制,UID一般从500开始,可以登录系统 ...

  8. 简单的Linux的用户权限管理

    企业生产环境用户权限集中管理方案案例 建立中要添加如下的项目经验: 在了解公司业务流程后,提出权限整改解决方案,改进公司超级用户Root权限泛滥的问题. 我首先写好方案后,给老大看,取得老大的支持后, ...

  9. linux笔记:linux常用命令-权限管理命令

    一个文件的权限只有root和所有者可以更改. 权限管理命令:chmod(改变文件或目录的权限) 权限的数字表示: 用权限加减的方式改变权限(u代表所有者,g代表所属组,o代表其他人,a代表所有人): ...

随机推荐

  1. 011-MySQL Query Cache 查询缓存设置操作

    一.概述 MySQL Query Cache 会缓存select 查询,安装时默认是开启的,但是如果对表进行INSERT, UPDATE, DELETE, TRUNCATE, ALTER TABLE, ...

  2. IfcRoot

    IfcRoot is the most abstract and root class for all entity definitions that roots in the kernel or i ...

  3. 在nginx环境下搭建基于ssl证书的websocket服务转发,wss

    1.证书准备 本地调试,可以安装自签名证书,安装方法参考https本地自签名证书添加到信任证书访问 2.修改配置文件 将上面的配置文件拷贝到conf目录,添加或者修改节点如下 # HTTPS serv ...

  4. kubernetes-通过VMware搭建k8s集群遇到的问题

    VMWare版本:14.13 Centos版本:CentOS-7-x86_64-DVD-1810.iso 遇到的问题:ping不通 报could not resolve host这个错误 解决办法:参 ...

  5. SpringBoot读取Linux服务器某路径下文件\读取项目Resource下文件

    // SpringBoot读取Linux服务器某路径下文件 public String messageToRouted() { File file = null; try { file = Resou ...

  6. hbase 安装(集群模式)

    环境:jdk 1.8 + hadoop2.7.6+zookeeper3.4.9+centos7 一.安装zookeeper(集群模式) 0.安装机器 ip                       ...

  7. kafka web端管理工具 kafka-manager【转发】

    1,下载与安装 $ git clone https://github.com/yahoo/kafka-manager.git $ cd kafka-manager $ ./sbt clean dist ...

  8. 深度学习-CNN+RNN笔记

    以下叙述只是简单的叙述,CNN+RNN(LSTM,GRU)的应用相关文章还很多,而且研究的方向不仅仅是下文提到的1. CNN 特征提取,用于RNN语句生成图片标注.2. RNN特征提取用于CNN内容分 ...

  9. java知识精要(一)

    一.java数组 (疯狂java讲义 第4.5 ~ 4.6章节) 1) 声明形式: type[] arrayName; 推荐方式 type arrayName[]; 2) 初始化: 方式一: type ...

  10. ZYNQ笔记(0):C语言基础知识复习

    ZYNQ的SDK是用C语言进行开发的,C语言可以说是当今理工类大学生的必备技能.我本科学C语言时就是对付考试而已,导致现在学ZYNQ是一脸懵逼.现在特开一帖,整理一下C语言的基础知识. 一.定义 1. ...