Linux基础之用户、组和权限管理

用户类别分为:普通用户、系统用户、登陆用户

用户标识:UserID, UID 是16bits二进制数字: 0-65535
管理员:0
普通用户:0-65536
系统用户:
1-499(CentOS6)
1-999(CentOS7)
登陆用户:
500-60000(CentOS6)
1000-60000(CentOS7)
名称解析: Username <--->UID
名称解析是根据名称解析库/etc/passwd进行转换;

组类别可划分为:
组类别1:管理员组、普通用户组、系统组、登录组
组标识: GroupID, GID,同UID一样,16bits二进制数字: 0-65535
管理员组:0
普通用户组: 1-65535
系统用户组:
1-499(CentOS6)
1-999(CentOS7)
登陆用户组:
500-60000(CentOS6)
1000-60000(CentOS7)
名称解析: groupname <--> GID
名称解析是根据名称解析库/etc/group进行转换;

组类别2:用户的基本组、用户的附加组

组类别3:
私有组: 组名同用户名,且只包含一个用户;
公共组: 组内包含了多个用户;

认证信息:
通过比对事先存储的password,与登录时提供的信息是否一致:
/etc/shadow
/etc/gshadow

密码的使用策略:

  1. 使用随机密码;
  2. 最短长度不要低于8位;
  3. 应该使用大写字母、小写字母、数字和标点符号四类字符中至少三类;
  4. 定期更换;

加密算法:
对称加密: 加密和解密使用同一个密码;
非对称加密:加密和解密使用的一对儿密钥;
公钥:public key 用于加密;
私钥:private key 用于解密;
单向加密: 只能加密,不能解密;提取数据特征码;
定长输出;雪崩效应
算法:
md5: message digest, 128bits
sha1: secure hash algorithm
sha224
sha256
sha385
sha512
在计算之时加salt, 添加的随机数,防止设置相同密码加密后出现一样的值;

/etc/passwd: 用户的信息库
[username]:[x]:[UID]:[GID]:[Comment]:[Home directory]:[Default shell]
name: 用户名
password: 可以是加密密码,也可是占位符x;
UID: 用户ID
GID: 用户所属的主组的ID号
GECOS: 注释信息
Home directory: 用户家目录;
shell: 用户登录时默认shell程序;

/etc/shadow: 用户密码;
user1:$6$3RsDhRk/DfEsAv0L$dzlsVlqL.vxHU2wMVX8LBdfoE5WrQatxjRXIAg2uFqfaq8ckctZAF3zN4QmDGKfsaJlknW19FytnckyiOnrl21:18234:0:99999:7:::
用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期段:过期期限:保留字段
$6$:表示加密的算法;
id为1时,采用md5算法加密
id为5时,采用SHA256算法加密
id为6时,采用SHA512算法加密
salt为随机偏移值,是对密码进行hash的一个干扰值
encrypted为散列值
$3RsDhRk/DfEsAv0L$ : salt, hash的偏移值

/etc/group: 组的信息库
group_name: password: GID: user_list
user_list: 该组的用户成员: 以此组为附加组的用户的用户列表

安全上下文:
进程以其发起者的身份运行;
进程对文件的访问权限,取决于发起此进程的用户权限;

系统用户:为了能够让那些后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,这类用户从不用登系统;

groupadd: 添加组
groupadd [options] group
-g GID :指定GID, 默认是上一个组的GID+1;
-r: 创建系统组;

groupmod: 修改组属性
groupmod [options] GROUP
-g GID: 修改GID;
[[email protected]]#tail /etc/group
newgrp:x:1007:
[[email protected]]#groupmod -g 1005 newgrp
[[email protected]]#tail /etc/group
newgrp:x:1005:

-n new_name: 修改组名;
[[email protected]]#groupadd oldgrp
[[email protected]]#groupmod -n newgrp oldgrp

groupdel: 删除组;
groupdel [options] GROUP

useradd: 创建用户
adduser:创建用户 (其实是指向useradd命令)
[[email protected]]#file which adduser
/usr/sbin/adduser: symbolic link to `useradd‘
useradd [options] LOGIN
-u, --uid UID: 指定UID; 会自动创那家与UID一样的GID;
-g, --gid GID: 指定基本GID,此组要事先存在,不使用默认GID;
-G, --groups GROUP1 GROUP2…: 指明用户所属的附加组,多个组之间用逗号分隔;
[[email protected]]#useradd -G eng,fin leo
[[email protected]]#tail -3 /etc/group
eng:x:1013:leo
fin:x:1014:leo
leo:x:1015:
-c, --comment COMMENT: 指明注释信息;
-d, --home HOME_DIR: 以指定的路径为用户家目录, 通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件;
-s, --shell SHELL: 指定用户的默认shell, 可用的所有shell列表存存在/etc/shells文件中;
-r, --system: 创建系统用户;
-m, --create-home:
-M, --no-user-group: 不为用户创那家主目录;
-f, --inactive: 设定用户过期期限;

注意:创建用户时的诸多默认设定配置文件为/etc/login.defs
-D:
useradd -D 显示创建用户时的默认配置;
useradd -D 选项:修改创建用户时的默认配置;其修改的值保存于/etc/default/useradd文件中;
[[email protected]]#useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[[email protected]]#useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[[email protected]]#useradd -D -d /tmp
[[email protected]]#useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/csh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

usermod: 修改用户属性:
usermod [options] LOGIN
-u, --uid UID: 修改用户的ID为此处指定的新UID;
-g, --gid GROUP:修改用户所属的基本组;
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]: 修改用户所属的附加组;原来的附加组会被覆盖;
-a,--append: 与-G一同使用,用于为用户追加新的附加组;
-c, --comment COMMENT: 修修注释信息;
-d, --home HOME_DIR:修改用户的家目录;用户原有的文件不会被转移至新位置;
-m, --move-home:只能与-d选项一同使用,用于将原来的家目录移动至新的家目录;
-l, --login NEW_LOGIN:修改用户名;
-s, --shell SHELL:修改用户的默认shell;
-L, --lock:锁定用户密码,即在用户原来的密码字符串之前添加一个“!”;
-U, --unlock:解锁用户的密码;

userdel: 删除用户
userdel [options] LOGIN
-r: 删除用户时一并删除其家目录,默认不删除;

passwd: 密码管理
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]

  1. passwd: 修改用户自己的密码;
  2. passwd USERNAME:修改指定用户的密码,但仅root有此权限;
    -l, -u: 锁定和解锁用户;
    -d, --delete:删除用户名密;
    -e: 过期期限,日期;
    -i DAYS: 非活动期限;(时间范围)
    -n DAYS: 密码的最短使用期限;
    -x DAYS: 密码的最长使用期限;
    -w DAYS:警告期限;
    --stdin:
    [[email protected]]#echo "gentoo" | passwd --stdin gentoo &> /dev/null (不显示输出)
    [email protected]]#echo "gentoo" | passwd --stdin gentoo
    Changing password for user gentoo.
    passwd: all authentication tokens updated successfully.

gpasswd: 组密码管理:
组密码文件: /etc/gshadow
gpasswd [option] group
-a USERNAME: 向组中添加用户;
-d USERNAME: 从组中移除用户;

netgrp: 临时切换指定的组为基本组; 用户必须已经属于要切换的组;
newgrp [-] [group]
-: 会模拟用户重新登录以实现重新初始化其工作环境;

chage命令:
chage [options] LOGIN
[[email protected]]#chage sindy
Changing the aging information for sindy
Enter the new value, or press ENTER for the default
Minimum Password Age [0]:
Maximum Password Age [99999]:
Last Password Change (YYYY-MM-DD) [2020-03-01]:
Password Expiration Warning [7]:
Password Inactive [-1]:
Account Expiration Date (YYYY-MM-DD) [-1]:

id命令: 显示用户的真实和有效ID;
id [OPTION]... [USER]
-u: 仅显示有效的ID;
-g:仅显示用户的基本组ID;
-G:仅显示用户所属的所有组ID;
-n: 显示名字而非ID;

su命令: switch user切换用户
登陆式切换:会通过重新读取用户的配置文件来重新初始化;
su - USERNAME
su -l USERNAME
非登录式切换: 不会读取目标用户的环境配置文件进行初始化;
su USERNAME

注意:管理员可无密码切换至其它任何用户;其它用户在切换时必须输入目标用户的密码;
-c ‘COMMAND’: 仅以指定用户的身份运行此处指定的命令;

权限管理:
rwxrwxrwx:
左三位:定义user(owner)的权限;
中三位:定义group的权限;
右三位:定义other的权限;

权限:
r: readable,读
w:writable,写
x:excutable,执行

文件:
r: 可获取文件的数据内容;
w:可修改文件的数据;
x: 可将此文件运行为进程;

目录:
r: 可使用ls命令获取其下的所有文件列表;
w:可修改此目录下的文件列表, 即创建或删除文件;
x: 可cd到此目录中,且可使用ls -l来获取所有文件的详细属性信息;

mode: rwxrwxrwx
ownership: user, group

权限组合机制:
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7

权限管理命令:
三类用户:
u:属主
g:属组
o:其它
a:所有

chmod [OPTION]... MODE[,MODE]... FILE…

  1. MODE表示法:
    赋权表示法:
    u=
    g=
    o=
    a=
    chmod u=rwx, g=rw, o=r FILE

授权表示法:直接操作一类用户的一个权限侠:
u+,u-
g+,g-
o+,o-
a+,a-
chmod u+r, o+r FILE 或者chmod ug+r FILE

chmod [OPTION]... OCTAL-MODE FILE…

  1. 八进制权限位:
    chmod 660 FILE

chmod [OPTION]... --reference=RFILE FILE…

  1. 引用参考权限:
    chmod --reference=refile FILE (参考refile文件的权限,并授予FILE).

选项:
-R, --recursive: 递归修改 (在授权表示法中使用,其它方法不建议使用)

从属关系管理命令: chown, chgrp
chown命令:修改属主属组
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
选项:
-R, 递归修改

chgrp命令:修改属组(同chown)
注意:仅管理员可以使用;

umask: 文件的权限反向掩码,遮罩码:
文件:
666-umask
目录:
777-umask
注意:之所以文件用666去减,表示文件默认不能拥有执行权限,如果中有执行权限,则需要将其加1;
umask: 023
666-023=644
777-023=754

原文地址:https://blog.51cto.com/chaozhs/2475002

时间: 2024-10-31 21:51:43

Linux基础之用户、组和权限管理的相关文章

Linux 基础入门----用户及文件权限管理

用户及文件权限管理 实验介绍 1.Linux 中创建.删除用户,及用户组等操作. 2.Linux 中的文件权限设置. 一.Linux 用户管理 Linux 是一个可以实现多用户登陆的操作系统,比如“李雷”和“韩梅梅”都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件.但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理 和 权限机制 ,不同用户不可以轻易地查看.修改彼此的文件. 下面我们就来学

Linux用户,组和权限管理

用户,组,权限 一.了解什么是用户,组和权限 1.对于linux系统来说,简单明了的特点就是多用户,多任务,也就是说一台linux系统的主机上面可以同时允许多个用户登录,当通过多个终端登录时可以同时使用这台linux的系统,然而对于linux习题来说,一切皆文件,别人和自己的工作任务都是以文件的形式存在的,不同的用户之间岂不是没有隐私或者安全而言,其实在linux上不是这样的,我们可以理解linux把每一个用户分配一间屋子,没有钥匙即权限我们是进不去浏览以及修改文件的,但是既然是一间屋子,那当然

Linux基础(三)——文件权限管理&amp;光盘、镜像挂载

Linux文件权限管理 更改文档归属 ls -ld 文档... 查看文件归属 chown -R(目录) 属主 文档... chown -R :属组 文档... chown -R 属主:属组 文档... 同时修改属主.属组 访问权限 读取 -read 写入 -write 可执行 -excute '如果用户对一个文件有 r.w.x权限:' r,查看文件内容(cat.vim看.less.--) w,修改文件内容(vim) x,能够运行程序文件 '如果用户对一个目录有 r.w.x权限:' r,查看目录内

linux 用户 组 和权限管理

Multi-task  Multi-Users 每个使用者: 用户标识 . 密码: Authentication(认证机制): Authorization  (授权机制): Account / Audition (审计): 组:用户组,用户容器 用户类别: 管理 普通用户 系统用户 登录用户 用户标识: UserIo ,UID 16bits 二进制数字:0-65535 管理员:0 普通用户: 1-65635 系统用户   1-499(Centos6)    1-1000(CentOS7) 登录用

2017-11-13Linux基础知识(11)用户、组和权限管理

在之前的章节中讲述了bash的基础特性以及IO重定向以和管道等其它的功能程序,之后介绍了一些其相关的命令,例如:tr和tee命令等,之后我们介绍了Here document,在这一章中,我们开始讲述用户.组及权限管理中的一部分,我们首先来说用户和组. 一.用户 Linux操作系统是一款多用户Multi-Users及多任务Multi-tasks的操作系统,也就是说,可以多个用户同时登录该系统执行各自的任务,彼此用户与用户之间互不干扰,这也是当时为了解决主机资源所提供的一种有效手段,那时候主机都在中

(赵小明RHCE笔记)linux基础之三 用户、组及权限

一.user1.每个用户将指派唯一用户ID(UID)  root的ID为0  普通用户ID从500开始(0-500系统使用)2.用户名和用户ID存在 /etc/passwd中3.当用户登陆时系统自动为其分配一个用户家目录4.用户无法读.写.执行其他用的文件二.changing file ownership1.only root can change a file's owner2.only root or the owner can change a file's group3.ownershi

Linux用户及文件权限管理

用户及文件权限管理 一.实验介绍 1.1 实验内容 Linux 中创建.删除用户,及用户组等操作. Linux 中的文件权限设置. 1.2 实验知识点 Linux 用户管理 Linux 权限管理 二.Linux 用户管理 通过第一节课程的学习,你应该已经知道,Linux 是一个可以实现多用户登陆的操作系统,比如"李雷"和"韩梅梅"都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件.但实际上他们的文件都是放在同一个物理磁

Linux基础命令:(5)管理使用者和设立权限的命令:

5.管理使用者和设立权限的命令:(1)chmod:用来改变许可权限,包括读取,写入,执行. r 文件可以被读取.w 文件可以被写入.x 文件可以被执行.通过[ls -l]可以查看文件的详细信息.第一列[-rw-rw-r--]显示了当前的权限,它有10位,第一位代表文件类型.其余9位代表文件的所有者,文件所属组群,和其他人.3个不同用户的3组权限.chmod标准的用法:[chmod 文件的使用者(u,g,a,a)增减(+,-,=)权限名称)(r,w,x)文件]u代表拥有文件的用户,g所有在所在的组

用户,组和权限管理

用户,组和权限管理 概述:在Linux中由于可以实现多用户和多任务的管理,所以在Linux中用户和组与文件的权限关系显得格外重要.如果出现混乱,那么在用户使用时会给系统造成很多不稳定性的因素.这也是linux系统相对于其它操作系统更安全的原因之一. linux系统中用户分为: 系统用户: centos6上的UID(1-499) centos7上的UID(1-999) 注:系统用户无法登陆到系统之中 登录用户 centos6上的UID(500+) centos7上的UID(1000+)待 (通过交

Linux之用户及文件权限管理

Linux之用户及文件权限管理 前言:Linux 是一个多用户的操作系统:Linux哲学思想之一-"一切皆文件".说明在学习Linux过程中,用户及文件权限的管理是非常重要滴.本文主要是引用了CentOs/RedHat 7.1的命令. 一.用户.组管理 1).用户.组类型: 超级用户(管理员):root用户具有一切权限,只有在进行系统维护(如创建用户.分配权限)时用到:由于root用户权限过大,为了避免管理员的误操作导致不可逆的后果,所以在非必要的情况下不用root用户登录. 普通用户