Linux⽤户及权限管理--总结
1、Linux操作系统⽤户及⽤户组
Linux操作系统是多任务(Multi-tasks)多⽤户(Multi-users)分时操作系统,Linux操作系统的⽤户就是让我们登录到Linux的权限;每当我们使⽤⽤户名登录操作系统时,Linux都会对该⽤户进⾏认证、授权审计等操作。操作系统为了识别每个⽤户,会给每个⽤户定义⼀个ID,就是UID。⽤户组就相当于多个⽤户的容器;在Linux系统中,⽤户组也有⼀个ID,GID。
1.1 Linux操作系统⽤户
在Linux中,⽤户分为两⼤类;管理员和普通⽤户,其中普通⽤户有分为系统⽤户和登录⽤户;
系统⽤户:为了能够让那些后台进程或服务类进程以⾮管理员的⾝份运⾏,通常需要为此创建多个普通⽤户,这类⽤户从来不⽤登录系统。
登录⽤户:就是我们⼀般使⽤登录Linux的⽤户
⽤户标识:user id,UID
通常使⽤16bits⼆进制数字表⽰(0-65535)
管理员的⽤户标识:0
普通⽤户:1-65535
系统⽤户:1-499(centos6)、1-999(centos7)
登录⽤户:500-60000(centos6)、1000-60000(centos7)
Linux通过名称解析库 "/etc/passwd" ⽂件解析⽤户名与⽤户ID之间的对应关系。
/etc/passwd:⽤户信息库
linux创建新用户和密码name:password:UID:GID:GECOS:home directory:shell
1.2Linux操作系统⽤户组
在Linux中,⽤户组分类⽅式有三种:
1、管理员组、普通⽤户组(系统⽤户组、登录⽤户组)
2、⽤户的基本组、⽤户附加组
3、私有组、公共组
⽤户组标识:group id,GID
通常使⽤16bits⼆进制数字表⽰(0-65535)
管理员的⽤户组标识:0
普通⽤户组:1-65535
系统⽤户组:1-499(centos6)、1-999(centos7)
登录⽤户组:500-60000(centos6)、1000-60000(centos7)
Linux通过名称解析库“/etc/group”⽂件解析⽤户名与⽤户ID之间的对应关系。
/etc/group:组的信息库
group_name:passwd:GID:user_list
user_list:该组⽤户的成员;以此组为附加组的⽤户的⽤户列表
1.3Linux操作系统密码
⽤户在登录Linux系统时,会对⽐passwd与之前保存在"/etc/shadow"、"/etc/gshadow"⽂件中的密码是否⼀致。
加密算法:
对称加密:加密和解密使⽤同⼀个密码
⾮对称加密:加密和解密使⽤的⼀对密钥
密钥对:公钥、私钥
单向加密:只能加密,不能解密;提取数据特征码
定长输出:
雪崩效应:密码中某⼀个字符改变,那么整个加密后的密钥都会改变
Linux的密码加密⽅式使⽤单项加密算法,并且添加随机数(salt)计算得出的。
系统识别算法ID算法名称
1MD5:message digest,128bits
2sha:secure hash algorithm,160bits
3sha224
4sha256
5sha384
6sha512
/etc/shadow:⽤户密码
⽤户名:加密的密码:最近⼀次修改密码的时间:最短使⽤期限:最常使⽤期限:警告期段:⾮活动期限:过期期限:保留字段
1 [root@localhost ~]# head -1 /etc/shadow
2
root:$6$mNeLUb3TE/L9utIA$nVgYyR6KkPDFRYrZC2Q9hPRNgz8z3mDKsQKraE1Fy8.LBMQoldhK4Ne1ZZlolZg2362JgdrwmTRmSbI5PTe.j0::0:99999:7::: 加密密码:使⽤$分隔,第⼀个段表⽰使⽤的加密算法,第⼆个段表⽰添加的salt(随机数),第三段表⽰加密后的密码
2、权限管理
Linux的⽂件管理权限分为读、写和执⾏
1 [root@localhost ~]# ls -l /bin/bash
2 -rwxr-xr-x. 1 root root 960392 8⽉
3 2016 /bin/bash
⽂件权限:
-rwxr-xr-x
共分为五个部分:-表⽰⽂件类型、rwx⽤户属主的权限、r-x⽤户属组的权限、r-x其他⽤户的权限、.是否启⽤facl
权限:
r:readable,读
w:wirteable,写
x:excuteable,执⾏
权限对⽂件的作⽤:
r:可获取⽂件的数据
w:可修改⽂件的数据
x:可将此⽂件运⾏为进程
权限对⽬录的作⽤:
r:可使⽤ls命令获取其下的所有⽂件列表或其⼦⽬录。
w:可修改此⽬录下的⽂件列表即创建或删除⽂件,包括⼦⽬录。
x:可cd⾄此⽬录中;且可使⽤ls -l来获取所有⽂件的详细属性信息
权限组合⼆进制数⼗进制数
---0000
--x0011
-w-0102
-wx0113
r--1004
r-x1015
rw-1106
rwx1117
练习:
rw-rw-r-- 664
rwxrwxr-x 775
rwxr-x--- 750
rw------- 600
rwxr-xr-x 755
3、相关命令
3.1⽤户管理命令
useradd命令:创建⽤户
useradd [选项] ⽤户名
-u,--uid UID:指定UID,默认是上⼀个⽤户的UID+1
-g,--gid GID:指定基本组ID,此组得事先存在
-
G,--groups GROUP1[,GROUP2,.....][,GROUPSN]:指明⽤户所属的附加组,多个组之间⽤逗号分隔
-c,--comment COMMENT:指明注释信息
-d,-home HOME_DIR:以指定路径为⽤户的家⽬录;通过复制/etc/skel此⽬录并重命名实现;指定的家⽬录路径如果事先存在,则不会为⽤户复制环境配置⽂件
-s,--shell SHELL:指定⽤户的默认shell,可⽤的所有shell列表存储在/etc/shells⽂件中
-r,--system:创建系统⽤户
-M:不为⽤户创建主⽬录
-f,--incatice INACTIVE:在密码过期后,账户被彻底禁⽤之前的天数,0表⽰⽴即禁⽤,-1表⽰禁⽤该功能
注意:创建⽤户时的诸多默认设定配置⽂件为/etc/login.defs
useradd -D:显⽰创建⽤户的默认选项配置
useradd -D 选项:修改默认选项的值
修改的结果保存于/etc/default/useradd⽂件中;可以直接修改此⽂件来实现
usermod命令:修改⽤户属性
usermod [选项] ⽤户名
-u,--uid UID:修改⽤户的ID为此处指定的新UID
-g,--group GROUP:修改⽤户所属的基本组;此组得事先存在
-G,--groups GROUP1[,GROUP2,GROUP3,....]:修改⽤户所属的附加组,原来的附加组会被覆盖
-a,-append:与-G⼀同使⽤,⽤于⽤户追加新的附加组
-c,--comment COMMENT:修改注释信息
-d,--home HOME_DIR:修改⽤户的家⽬录;⽤户原来的⽂件不会被转移⾄新位置
-m,--move-home:只能与-d选项⼀同使⽤,⽤于将原来的家⽬录移动为新的家⽬录
-l,--login NEW_LOGING:修改⽤户名
-
s,--shell SHELL:修改⽤户的默认shell
-L,--lock:锁定⽤户密码;即在⽤户原来的密码字符串之前添加⼀个“!”
-U,--unlock:解锁⽤户密码
userdel命令:删除⽤户
userdel [选项] ⽤户名
-r:删除⽤户时⼀并删除其家⽬录和⽤户邮箱
id命令:显⽰⽤户的真实和有效的UID和GID
id [option]... [username]
-u:仅显⽰有效的UID
-g:仅显⽰⽤户的基本组的ID
-G:仅显⽰⽤户所属的所有组的ID
-
n:显⽰名字⽽⾮ID;⼀般与g⼀起使⽤:-ng
su命令
登录式切换:会通过重新读取⽬标⽤户的配置⽂件来重新初始化
su - USERNAME
⾮登录式切换:不会读取⽬标⽤户的配置⽂件进⾏初始化
su USERNAME
注意:管理员可⽆密码切换⾄其他任何⽤户;其他⽤户在切换⽤户时必须输⼊密码
-c “COMMAND”:仅以指定⽤户的⾝份运⾏此处指定的命令
例如:su - USERNAME -c “whoami”
3.2⽤户组管理命令
groupadd命令:添加组
groupadd [选项] GROUP_NAME
-g GID:指定GID,默认是上⼀个组的GID+1
-r:创建系统组
groupmod命令:修改组属性
groupmod [选项] GROUP_NAME
-g GID:修改GID
-n NEW_NAME:修改组名
groupdel命令:删除组
groupdel [选项] GROUP
3.3⽤户及⽤户组练习
练习:1:创建⽤户gentoo,UID为4001,基本组为gentoo,附加组为distro(GID为5000)和penguin(GID为5001);
练习2:创建⽤户fedora,其注释信息为"Fedora Core",默认shell为/bin/tsch;
练习3:修改gentoo⽤户的家⽬录为/var/tmp/gentoo;要求其原有⽂件⼈仍能被⽤户访问;
练习4:为gentoo新增附加组netadmin
3.4密码管理命令
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:清除⽤户密码
-e:过期期限,⽇期
-i:⾮活动期限,时间范围
-n:密码的最短使⽤期限
-x:密码的最长使⽤期限
-w:警告期限
--stdin:echo “PASSWORD” | passwd --stdin USERNAME
1 [root@localhost ~]# echo "ceshimima" | passwd --stdin ceshi
2更改⽤户 root 的密码。
3 passwd:所有的⾝份验证令牌已经成功更新。
gpasswd命令:
⽤户组密码⽂件:/etc/gshadow
gpasswd [选项] group_name
-a USERNAME:向组中添加⽤户,作为附加组
-d USERNAME:从组中删除⽤户
newgrp命令:临时切换指定的组为基本组
newgrp [-] [group_name]
-:会模拟⽤户重新登录以实现重新初始化其⼯作环境
注意:
若指定组设定了密码:
(1)如果⽤户的附加组是要切换到的组名,那么不需要密码可以直接切换到指定组(2)如果⽤户的附加组不包含要切换的组名,那么需要输⼊密码才能切换到指定组若指定组没有设定密码,所有⽤户都不可以直接切换到指定组,root⽤户除外
3.5权限管理命令
chmod命令:
chmod [OPTION]... MODE[,MODE]...
chmod [OPTION]...
chmod [OPTION]... --reference=
三类⽤户:
u:属主
g:属组
o:其他
a:所有
(1)chmod [OPTION]... MODE[,MODE]...
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论