Linux ⽀持多个⼈使⽤同⼀个⽤户登录系统, Windows 在修改组策略的情况下,也可以多个⼈使⽤同⼀个⽤户登录

远程连接Linux的⽅式:SSH协议

远程连接Windows的⽅式:RDP协议

安卓⼿机(Linux系统):root 刷机,使⽤root⽤户登录系统

用户所处的组,跟目录或文件的权限息息相关

root用户可以进入/home 目录,普通用户不可以进入/root目录

默认清况下,创建一个用户,就会在/home 目录下创建一个以用户名命名的家目录(系统登陆后的位置,700)

一个用户只能有一个uid (用户的身份证号),gid 为了减少用户的权限

Linux提供了集成的系统管理工具userconf,它可以用来对用户账号进行统一管理

每个用户的用户名、UID、宿主目录都不可以相同,用户组的新GID可以与系统已有用户组的GID相同

# sh /tmp/a.sh 		执行文件
# ssh 用户名@'ip' 切换用户 id jj
-u:查看⽤户的uid 身份证号
-g:查看⽤户的gid 用户组的id 用户组 指定用户所属的用户组
-G:查看⽤户的属组 用户组,用户组 指定用户所属的附加组
-n:查看 只显示名字(不显示数字)(与别的选项一起用) #拥有root权限的方法:
1. a+rwx
2. vim /etc/passwd ,把用户的uid改成0,这时该用户的uid和gid都是0
3. [root@oldboy ~]# useradd -o -u 0 -g 0 test
4. sudo
5. su - root -c #Usage: useradd [选项] [⽤户名]



默认情况下,在创建⽤户的时候,会创建⼀个和 ⽤户 同名的组 ,并且把该⽤户加⼊该组
用户名必须要指定,而且不能重复 [root@localhost ~]# useradd zls
-u:(uid)指定uid,uid存在的不能指定,1000+,用户名不支持中文(数字)
指定uid,会附带指定gid,指定gid,uid看上一个系统用户的uid再递增,
-g:(gid)指定gid(必须要是存在的),也可以指定组名,#(组名,或gid)指定了就不会创建新的了
-G:(Group)指定附加组(必须指定存在的),如果加⼊多个附加组则⽤ 逗号隔开(覆盖)
-M:不创建家⽬录,不能登陆,创建系统用户的时候才会用,家目录是否存在,看home -M -d = -m
-s:(shell)指定用户登录的shell,默认/bin/shell
-c:(comment)添加注释
-d:(directory)指定⽤户的家⽬录,如果此目录不存在,系统直接创建,(请随意指定位置)
-r:帮我们创建⼀个uid范围是201-999的系统⽤户(从999开始倒序)(运行服务的),不创建家⽬录,但是可以登陆,(要创建,迁徙家目录)
[root@oldboy ~]# useradd -r xt
[root@oldboy skel]# useradd song{1..10} # 不能这样创建用户 #删
userdel
Usage:userdel [选项] [⽤户名] 删除uid 注释,家目录,登陆shell
默认情况下,在删除⽤户的同时会把同名的⽤户组也删除,但是如果组内有其他⽤户,则不会删除组,#groupdel 组名 删组,无论这个组有没有其他用户
只删除⽤户
-r:删除⽤户的同时,删除⽤户的 家⽬录 ,和⽤户的其他 邮件⽬录... (删⼲净)(一切)
删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。 #改
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
修改已有用户的信息使用usermod命令 usermod
Usage:usermod [选项] [⽤户名]
-u:修改uid,指定不存在的 (数字)
-g:修改gid(指定存在的gid) –g develope 用户组改为developer 修改了gid 主组同时改变,指定存在的,在同一个组(共用组)#(组名,或gid) -G:修改附加组 不能指定不存在的组
-a:配合-G,在修改附加组的时候,起到追加效果(append)
[root@oldboy ~]# usermod syy1 -aG bob (只能用-aG,追加多个附加组用,分割,,不能省略)
[root@oldboy ~]# id syy1
uid=1000(syy1) gid=1000(syy1) groups=1000(syy1),0(root),10938(bob) -m:修改(迁移)家⽬录,必须配合 usermod -md 搬到哪 (要修改的用户必须关机)
-d:指定修改后的家⽬录 -s:修改登录的shell (指定/,不能登陆)
-c:修改注释
-l:修改登录的⽤户名 usermod -l 要改成什么名字,修改对象要关机,修改登陆名,连接
[root@oldboy ~]# usermod kkk -l kk -L:锁定⽤户(封号)root用户还可以登陆,直接输入用户名密码,登陆不了
-U:解锁⽤户(解封) /etc/shadow:存放⽤户密码 ()
[nn@oldboy ~]$ ll /etc/shadow
----------. 1 root root 3508 Apr 3 17:31 /etc/shadow 9列,以冒号为分隔符
zls:!!:18351:0:99999:7:2:183519998:
第⼀列:⽤户名
第⼆列:⽤户密码(!! 和 * 都是没有密码)
第三列:上⼀次该⽤户修改密码的时间(从1970年开始计算到上⼀次修改的天数)
第四列:密码最短使⽤的天数
第五列:密码最⻓使⽤天数
第六列:密码快过期,7天之前,会提示修改密码
第七列:密码过期后两天提示强制修改密码。否则⽆法登陆
第⼋列:账户的失效时间,从1970年开始计算
第九列:保留
# 如何查看组信息?这个组是否被创建
[root@localhost ~]# cat /etc/group # 创建⼀个⽤户,会影响⼏个⽂件?
4个⽂件:
1./etc/passwd :存放⽤户信息
2./etc/shadow :存放密码信息
3./etc/group :存放⽤户组信息
4./etc/gshadow :存放组密码信息
当使⽤ `useradd zls` 创建⽤户时,会影响以上4个⽂件 /etc/passwd
/etc/passwd:存放⽤户信息
7列,以冒号为分隔符
root:x:0:0:root:/root:/bin/bash
第⼀列:⽤户名
第⼆列:密码占位符
第三列:uid
第四列:gid
第五列:注释信息
第六列:家⽬录
第七列:登录的shell /etc/login.defs 用户默认信息的配置文件 [root@localhost ~]# cat /etc/login.defs
[root@localhost ~]# grep -i '^[a-z]' /etc/login.defs
[root@localhost ~]# cat /etc/login.defs | grep -v '#' # 指定创建⽤户后的 邮件⽂件 存放位置
MAIL_DIR /var/spool/mail
# 密码,最⻓天数
PASS_MAX_DAYS 99999
# 密码最⼩天数
PASS_MIN_DAYS 0
# 密码最⼩⻓度(普通用户自己设置密码)
PASS_MIN_LEN 5
# 密码过期前7天 ,提示,密码要过期了,给⽼⼦改
PASS_WARN_AGE 7
# 普通⽤户的uid 最⼩值1000(顺延+)
UID_MIN 1000
# 普通⽤户的最⼤uid 60000
UID_MAX 60000
# -r创建的系统⽤户,201 - 999
SYS_UID_MIN 201
SYS_UID_MAX 999
# 普通⽤户组的最⼩gid
GID_MIN 1000
# 普通⽤户组的最⼤gid
GID_MAX 60000
# -r创建的系统⽤户组,201 - 999
SYS_GID_MIN 201
SYS_GID_MAX 999
# 默认创建家⽬录
CREATE_HOME yes (no,创建用户不创建家目录,不能输入密码登陆)
# 家⽬录的umask 家目录用的mask(创建目录用的umask)
UMASK 077 0777 0777
- 0022 0077 (umask)
------- ------
0755 0700
[root@oldboy skel]# umask 系统的umask 是0022
0022
# 在删除⽤户的时候,是否捆绑,把⽤户组也删除,指定组的话不会捆绑删除
USERGROUPS_ENAB yes
# ⽤户密码加密算法
ENCRYPT_METHOD SHA512() /etc/default/useradd [root@localhost ~]# ll /etc/default/useradd
-rw-r--r-- 1 root root 119 11⽉ 5 2016 /etc/default/useradd
[root@localhost ~]# cat /etc/default/useradd
# 依赖于/etc/login.defs的USERGRUUPS_ENAB参数,如果为no,则在此处控制
GROUP=100
⽤户的密码管理
# 默认普通⽤户的家⽬录
HOME=/home
# 是否启⽤账号过期停权,-1表示不启⽤
INACTIVE=-1
# 账号终⽌⽇期(没有设置)
EXPIRE=
# 创建⽤户的默认shell
SHELL=/bin/bash
# 当⽤户,误删除了⾃⼰家⽬录下的环境变量。
SKEL=/etc/skel
-bash-4.2$ cp /etc/skel/.bash* ~/
# 创建⽤户的同时,是否创建邮件⽂件
CREATE_MAIL_SPOOL=yes passwd # 创建密码的规范
1.密码的⻓度最好⼤于10位字符
2.密码中包含 ⼤⼩写字⺟ 数字 以及 特殊字符 ! @ # $
3.不规则性(不要出现⾃⼰名字、公司名字、⾃⼰电话、等等简单的密码) 没有密码,普通用户是不能登陆的 # 直接输⼊passwd,更改当前登录⽤户的密码
[root@localhost ~]# passwd # passwd + ⽤户名,给指定⽤户设置密码,root才有权限
[root@localhost ~]# passwd zls000 # 使⽤ ⾮交互 的⽅式设置密码给指定⽤户,root用户才可以给指定用户密码 # 批量创建用户
# 语法
[root@localhost ~]# echo '123' | passwd --stdin zls000 给新用户密码
[root@oldboy ~]# echo 123 | passwd --stdin root 给有密码的用户一个新密码
Changing password for user root.
passwd: all authentication tokens updated successfully.
passwd:已成功更新所有身份验证令牌 [root@oldboy ~]# echo $RANDOM 产生随机数
[root@oldboy ~]# echo "$RANDOM" | md5sum 使用mad5sum加密随机数,32位随机数
525f3a6d83469f501caf0b65247b07ef -
[root@oldboy ~]# echo "$RANDOM" | md5sum | cut -c 1-6 使用cut 选择密码位数
4994e6
[root@oldboy ~]# echo "$RANDOM" | md5sum | cut -c 1-6 | tee /home/mima.txt
59ef87 用命令tee 保存密码,文件里的密码是覆盖的,-a表示追加,只能用多次tee
[root@oldboy ~]# echo "$RANDOM" | md5sum | cut -c 1-6 | tee /home/mima.txt | passwd --stdin syy1
用一条命令,给用户一个随机的,加密的,指定位数的,保存下来的密码, root@oldboy ~]# md5sum /root/passwd 使用md5sum 加密文件,校验,不能加密目录,只有文件内容不变,加密码就不会变,改文件名没事
892a67e7d4d4c5685cb2f5fe9cf2537a /root/passwd # md5sum,加密。并且做校验 [root@oldboy ~]# echo oldboy{1..100} 以行的形式显示,数字或者字符串
oldboy1 oldboy2 oldboy3 oldboy4 oldboy5 oldboy6
[root@oldboy ~]# echo {1..100} | xargs -n 1 (-n1) ,n不能省略,默认以空格为分隔符
1
2
3
4
5
6
[root@oldboy ~]# echo {1..10} | xargs -n 2
1 2
3 4
5 6
[root@oldboy ~]# seq 100 显示一列数字
1
2
3
4
5
6
[root@oldboy ~]# seq -w 100 -w 补全位数,-w不能放后面
001
002
003
004
005
006
[root@oldboy ~]# seq -w 100 | awk '{print "oldboy"$1}' 用双引号拼凑,用','分割,oldboy后面接空格可以增加空格数,在这不要加空格
oldboy001
oldboy002
oldboy003
oldboy004
oldboy005
oldboy006
[root@oldboy ~]# seq -w 100 | awk '{print "useradd ","oldboy"$1}'
用多个双引号拼凑出多列内容,必须要用双引号
useradd oldboy001
useradd oldboy002
useradd oldboy003
useradd oldboy004
useradd oldboy005
useradd oldboy006
[root@oldboy ~]# seq -w 100 | awk '{print "useradd ","oldboy"$1, " &&","echo $RANDOM | md5sum | cut -c 1-10 | tee -a /home/a.txt | passwd --stdin oldboy"$1}' | bash
useradd oldboy001 && echo $RANDOM | md5sum | cut -c 1-10 | tee -a /home/a.txt | passwd --stdin oldboy001
seq为了获取变量," "为了拼凑(可以合并)(awk里双引号里面认为是字符串),bash 可以多行执行, [root@oldboy ~]# seq -w 100 | awk '{print "userdel -r","oldboy"$1}' | bash 批量删除 sed 的后向引用也可以拼命令,直接修改命令行就可以删除批量用户
[root@oldboy home]# seq -w 10 | sed -nr 's#(.*)#\ useradd\ oldboy\1 \&\& \echo $RANDOM \ | md5sum \ | cut -c 1-20 \ | tee -a /tmp/a.sh \ | passwd --stdin oldboy\1#p' | bash
小心转义符,&可以调用变量,| ,(.*) \1 ,可以使用多次,\两边的空格可以随便用,\&转义&,不调用变量,两个oldboy\1,小心贪婪匹配
[root@oldboy home]# seq -w 10 | sed -nr 's#(.*)#\ userdel -r \ oldboy\1 #p' | bash 批量删除 [root@oldboy ~]# seq -w 10|sed -nr 's#(.*)#useradd old\1 \&\& echo $RANDOM|md5sum|cut -c 1-10|tee -a c.txt|passwd --stdin old\1#p'|bash 脚本
for n in `seq -w 100`;do
useradd syy$n
echo $RANDOWM | tee -a /tmp/mima.txt |passwd --stdin syy$n
done sh a.sh (第二次执行没有意义) # seq -w 100 | awk '{print "useradd ","oldboy"$1, " &&","echo $RANDOM | md5sum | cut -c 1-10 | tee -a /home/a.txt | passwd --stdin oldboy"$1}' | bash 大神 多条命令用;分割(# oldn:$a>>a.txt)
[root@localhost ~]# for n in `seq -w 100`;do useradd lls$n;pass=`echo $RANDOM|md5sum|cut -c 1-10`;echo $pass |passwd --stdin lls$n;echo lls${n}:$pass >> /tmp/lls.pass;done seq -w 100|sed -nr 's#(.*)#useradd wls\1 \&\& pass=`echo $RANDOM|md5sum|cut -c 1-10` \&\& echo $pass |passwd --stdin wls\1 \&\& echo wls\1:$pass >> /tmp/wls.pass#gp'|bash #!/bin/bash for n in `seq -w 100`;do
useradd qls$n
pass=`echo $RANDOM|md5sum|cut -c 1-10`
echo $pass |passwd --stdin qls$n
echo qls${n}:$pass >> /tmp/qls.pass
done #!/bin/bash read -p "请输入需要创建的用户名 :" username username=输入内容(# 交互,变量) read -p "请输入需要创建用户的数量:" usercount for n in `seq -w $usercount`;do (n 是自己定义的变量)
useradd {$username}{$n}
pass=`echo $RANDOM|md5sum|cut -c 1-10`
echo $pass |passwd --stdin {$username}{$n}
echo {$username}{$n}:$pass >> /tmp/$username.pass
done # 脚本里的bash 和命令行bash 可以认为是不同的终端 /dev/pts/n,PATH和变量自定义都会变化 # 密码管理命令
yum install -y expect
mkpasswd 默认生成 九位 随机数 //2.mkpasswd密码⽣成⼯具, -l设定密码⻓度,-d数字,-c⼩写字⺟,-C⼤写字⺟,-s特殊字符
[root@zls ~]# yum install -y expect //需要安装扩展包
[root@zls ~]# mkpasswd -l 10 -d 2 -c 2 -C 2 -s 4
|K&13bR)i/ 作业:
1.命令总结
2.钱导变态
# 使⽤ 三种⽅式,创建出来100个 ⽤户,并且设置100个随机密码,并且记录密码,都可以登录
username:password
cat /tmp/1.txt
zls001:123456
zls002:kzsuhiuh1 Python 2.7.5 (default, Aug 7 2019, 00:51:29)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print (hello world)
File "<stdin>", line 1
print (hello world)
^
SyntaxError: invalid syntax
>>> print ('hello world') #单引号必须要加,可以用双引号,括号可以去掉,命令行不能用
hello world
>>> quit() # read -p "请输入需要创建的用户名 :" username
#
# read -p "请输入需要创建用户的数量:" usercount
#
# for n in `seq -w $usercount`;do
# useradd $username$n
# pass=`echo $RANDOM|md5sum|cut -c 1-10`
# echo $pass |passwd --stdin $username$n
# echo $username$n:$pass >> /tmp/$username.pass [root@oldboy ~]# read -p "请输入需要创建的用户名 :" username(定义了变量)
请输入需要创建的用户名 :1
[root@oldboy ~]# echo $username
1 #找出所有/tmp下的2层目录里以old开头的普通文件复制到/opt并改成以abc开头的文件
find /tmp -maxdepth 2 -name "old*" -type f |sed -n s#old#abc#g|xargs -I {} cp -a {} /opt/ [root@lb01 ~]# echo xxx004:password4 >> /tmp/a.pass
[root@lb01 ~]# cat /tmp/a.pass
xxx004:password4
useradd xxx001 && pass=`echo $RANDOM|md5sum|cut -c 1-10` && echo $pass |passwd --stdin xxx001 && echo xxx001:$pass >> /tmp/a.pass ## 组的基本管理-- group
[root@localhost ~]# tail -2 /etc/group
hfls49:x:1779:1780
hfls50:x:1780: 第一列:组名
第二列:密码占位符(组密码存在gshadow)
第三列:gid
第四列:组的附加成员,基本成员(基本组,主组)不显示。 [root@localhost ~]# ll /etc/gshadow
---------- 1 root root 8902 4月 1 10:11 /etc/gshadow [root@localhost ~]# tail -2 /etc/gshadow
hfls49:!::
hfls50:!::(用户) 第一列:组名
第二列:组密码(!! 表示没有密码)
第三列:组管理员
第四列:组的附加成员,基本成员(相对于用户来说)不显示?
kk:x:345343:kk 使用 -G 会显示这个组的基本成员 ## 创建组命令:groupadd
-g 只能修改为不存在的gid,超级用户 -g 只能修改主组,没有 -G 这个选项
-r 创建gid范围是201-999之间的系统组 [root@localhost ~]# groupadd z1s 使用默认的gid,上个gid+1(基本组)
zhiding
[root@localhost ~]# groupadd z1s -g 6666 指定gid,只能指定不存在的组gid # 创建gid范围是201-999之间的系统组
[root@localhost ~]# groupadd -r z1s 上一个gid-1 ## 修改组命令:groupmod + 必须加(必须是组的gid)
-g 只能修改为不存在的gid,超级用户 -g 只能修改主组,没有 -G 这个选项
-n 组名不能是中文,数字串,普通用户不能修改别的组gid,组名 自己的也不能修改,
组名 组的gid
[root@localhost ~]# groupmod z1s -g 6666 只能修改为不存在的gid,超级用户-g 只能修改主组,没有 -G 这个选项 # 修改组名
[root@localhost ~]# groupmod z1s -n z1s01 组名不能是中文,数字串,普通用户不能修改别的组gid,组名 自己的也不能修改, ## 删除组命令:groupdel (不能删除一个用户的主组)(没有 -r 这个选项)
[root@localhost ~]# groupdel z1s01 只能接组名来删除组,无论有没有别的组成员,都会删除这个组,无法删除一个用户的主组,只能删除附加组 [root@oldboy ~]# gpasswd uu(组名) 给uu组密码,普通用户进入组的时候需要输入密码
-M
Changing the password for group uu
New Password:
Re-enter new password: [root@localhost chen]# gpasswd -M tsengia,obama,kylin,jerry zonghe
将jerry、kylin、tsengia、obama等用户添加到zonghe组内 [root@oldboy ~]# usermod syy1 -G uu 修改syy1 的附加组为uu
[root@oldboy ~]# id syy1
uid=1000(syy1) gid=1000(syy1) groups=1000(syy1),995(uu)
[root@oldboy ~]# usermod syy1 -G root 修改syy1 的附加组为root,-a追加
[root@oldboy ~]# id syy1
uid=1000(syy1) gid=1000(syy1) groups=1000(syy1),0(root)
[root@oldboy ~]# usermod syy1 -aG bob 追加syy1的附加组bob
[root@oldboy ~]# id syy1
uid=1000(syy1) gid=1000(syy1) groups=1000(syy1),0(root),10938(bob)
[root@oldboy ~]# gpasswd root (组名) 给root 组密码,普通用户如果有附加组root的话,就可以切换为root组,但是必须要输入密码
Changing the password for group root
New Password:
Re-enter new password:
[syy1@oldboy ~]$ newgrp root #切换为root组,前提是用户syy1有这个组,也就是root给了这个组给syy1,输入密码
[syy1@oldboy ~]$ touch kk
[syy1@oldboy ~]$ ll
total 4
-rw-rw-r--. 1 syy1 syy1 95 Mar 16 04:58 a.sh
-rw-r--r--. 1 syy1 root 0 Apr 1 17:04 kk #文件属组改变,同一个组的用户才能看到 普通用户创建目录或文件的属主是该用户,属组是基本组,当使用newgrp切换用户组之后,创建目录或者文件属主不变,属组变成了切换的组,并且umask从0002变成0022
[nn@oldboy ~]$ id -un 当前用户名
nn
[nn@oldboy ~]$ id -gn 当前组名,小心切换
syya ## 用户身份切换 如何在普通用户的情况下,完成日常工作?
1)`su` 切换用户,使用普通用户登录,然后使用su命令切换到root。
优点:简单,方便 缺点:需要知道root密码,不安全,切换到root没有日志审计功能 -c : 2)`sudo` 提权,当需要使用root权限时,进行提权,而无需切换至root用户。
优点:安全,方便
缺点:复杂 ### shell的分类 - 交互式shell 等待用户输入执行的命令(终端操作,需要不断提示) (比如 用passwd 修改密码) - 非交互式shell 执行shell脚本, 脚本执行结束后shell自动退出,和一部分命令(有些命令是交互的,比如read )(比如 脚本 ll cd ) - 登录式shell 需要输入用户名和密码。才能进入shell (`su - root` ,切换用户,位置改变,加载了该用户 的环境变量) - 非登录式shell (拒绝使用) 不需要输入用户和密码就能进入,比如执行sh, bash, (`su username` 虽然切换了用户,但是当前的位置不变,没有加载该用户的环境变量) # 环境变量文件 ## 个人环境变量: (只影响当前用户的环境变量)
~/.bash_profile (个人修改)
~/.bashrc [root@localhost ~]# ll ~/.bashrc
-rw-r--r-- 1 root root 176 Mar 25 10:55 /root/.bashrc [root@localhost ~]# ll ~/.bash_profile
-rw-r--r--. 1 root root 176 Dec 29 2013 /root/.bash_profile ## 全局环境变量:(影响系统所有用户的变量)
/etc/profile
/etc/profile.d/*.sh (以.sh 结尾的文件都是全局环境变量)(不加载隐藏文件)
/etc/bashrc [root@localhost ~]# ll /etc/profile
-rw-r--r-- 1 root root 1819 Apr 11 2018 /etc/profile [root@localhost ~]# ll /etc/profile.d/*.sh [root@localhost ~]# ll /etc/bashrc
-rw-r--r-- 1 root root 2853 Apr 11 2018 /etc/bashrc #登录式shell配置文件执行顺序
/etc/profile->/etc/profile.d/*.sh->~/.bash_profile->~/.bashrc->/etc/bashrc #非登陆式shell配置文件执行顺序
~/.bashrc->/etc/bashrc->/etc/profile.d/*.sh # 切换用户:
su - root
-c :不切换用户的情况下,直接执行命令
[syyb@oldboy ~]$ su - root -c 'vim /etc/hosts' 引号必须要加,需要输入root的密码
Password:
[syyb@oldboy ~]$ sudo vim /etc/hosts sudo 提权
[syya@oldboy ~]$ sudo cd /root/ sudo提权进不去root ,只能当个门外客 [root@oldboy ~]# yum install -y psmisc 安装stree 命令
[root@oldboy ~]#pstree
sshd─┬─sshd───bash───bash───su───bash───su───bash───su───bash───su───bash───pstree
#CTRL+d 按5次,回到root用户(bash 窗口) ─sshd───bash───bash───bash───bash───bash───pstree
#4次回到第一层终端,bash一次就相当于打开一个终端,这些终端是覆盖到一起的,用patree可以查看当前窗口开了几层终端 用户身份提权
## sudo 提权
#usermod zls -G wheel 加入到wheel (context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023)(自由重复) 1.将用户加入到 sudoers 文件中(加入自由文件)---单个用户
2.将用户加入到 sudoers 文件中设置的组里(加入自由组)---多个用户(可以sudo)
加入自由组的用户还是不能直接进入root,但是sudo的时候不用输入密码 [root@localhost ~]# visudo vim /etc/sudoers = visudo
[root@localhost ~]# visudo -c 检查sudoers中有没有语法错误 [root@oldboy ~]# su - www -c "pwd" 普通用户的切换用户才需要知道对象密码
[root@oldboy ~]# su - root -c "pwd"
--------------------------------------------------------
1.用户名 2.主机名 3.角色名 4.命令名
root ALL= (ALL) ALL (表示sudo 的时候所有命令都能执行)
syya ALL= (ALL) ALL (ALL /bin/cp,ALL !/bin/su,vimvirm)(可以在这用变量)()
NOPASSWD: ALL (相应的普通用户sudo的时候,不再需要密码)
命令名改为 /bin/cat,/bin/cp ,用which命令可以查看该命令的位置从而选择/bin或/sbin 意思就是相应用户sudo提权的时候只能使用这两个命令,!/bin/rm 表示相应用户sudo提权的时候不能使用这这个命令, 命令名: #在sudo文件或者自由组里的用户,sudo的时候要输入自己的密码
1.ALL # sudo可以执行所有的命令
2./bin/cp,/bin/cat #当sudo的时候,只能执行这两个命令
3.!/bin/rm # 除了rm命令不能执行,别的命令都能执行
4.!/bin/rm,!/bin/vim,!/bin/vi
5. ## 自定义别名
Cmnd_Alias SYY=/bin/cat,/bin/cp (# 设置别名)(注意开头注释,别名大写)
syya ALL= (ALL) SYY
[root@oldboy ~]# visudo -c 检查语法有没有错误
Warning: /etc/sudoers:51 unused Cmnd_Alias "SYY"
/etc/sudoers: parsed OK www ALL=(ALL) NOPASSWD: ALLNOPASSWD (钱导题) 31.创建一个普通用户test01,只给这个普通用户有查看的权限
test01 ALL=(ALL) /usr/bin/cat
32.创建一个普通用户test02,只限制这个普通用户的删除权限
test01 ALL=(ALL) ALL,!/usr/bin/rm
--------------------------------------------------------------
入职新公司,老大让你在服务器上限制rm 命令,当用户输入rm 命令时候提示”rm commandis not allowed to use.” 请问实现的步骤是?
[root@oldboy ~]# alias rm = "echo rm commandis not allowed to use" [root@oldboy ~]# useradd kk 创建用户
[root@oldboy ~]# groupadd syyys 创建组
[root@oldboy ~]# tail -1 /etc/group 查看组gid
syyys:x:10942:
[root@oldboy ~]# id kk 查看用户kk的主组和附加组
uid=10940(kk) gid=10941(kk) groups=10941(kk)
[root@oldboy ~]# usermod kk -G syyys 添加或修改用户kk的附加组(root执行)
[root@oldboy ~]# id kk
uid=10940(kk) gid=10941(kk) groups=10941(kk),10942(syyys) /etc/sudoers sudo命令的配置文件
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
%syyys ALL=(ALL) ALL (可以自己添加无限制的组)
## Same thing without a password [root@oldboy ~]# passwd kk 创建了用户,给了密码,才能使用密码登陆
Changing password for user kk.
New password: 在root用户下,以普通用户身份执行"pwd"命令。
[root@oldboy ~]# su - www -c "pwd" 普通用户的切换用户才需要密码

Linux 用户管理和提权的更多相关文章

  1. 11.Linux用户管理

    本笔记说的Linux用户管理主要包括以下内容: 1.用户配置文件(/etc/passwd  /etc/shadow) 2.组配置文件(/etc/group  /etc/gshadow) 3.用户缺省配 ...

  2. Linux 用户管理 与 文件权限

    Linux 用户管理 与 文件权限 用户组操作 1.groupadd命令 groupadd [-g -o] gid group 各个选项具体含义如下: -g:指定新建用户组的GID号,该GID号必须唯 ...

  3. linux 用户管理

    linux 用户管理 创建一个用户 foo 这个用户只能在/home/foo 上面增加删除文件, foo 不能在其他目录加减文件 useradd -d /home/foo -m foo [root@] ...

  4. linux用户管理,linux用户口令管理,linux用户组管理,linux用户权限管理详解

    linux用户管理 http://www.qq210.com/shoutu/android 用户账号的添加(新加用户需添加用户口令) :增加用户账号就是在/etc/passwd文件中为新用户增加一条记 ...

  5. Linux用户管理的复习时间

    所谓三天不练手生,你还记得关于Linux用户管理的所有知识吗?现在就来跟我一起复习一下吧! 1.常用配置文件 用户信息文件: /etc/password 密码文件: /etc/shadow 用户组文件 ...

  6. Linux用户管理简介

    Linux用户管理是Linux的优良特性之一,本文说明了Linux中用户的登录过程和登录用户的类型. 一.Linux用户登录过程 用户要使用Linux系统,必须先进行登录.Linux的登录过程和win ...

  7. linux 用户管理,用户权限管理,用户组管理

    linux 用户管理,用户权限管理,用户组管理 一:ls -l 命令 解释 第个d表示是目录,如果是文件是-,如果是连接是l 第2到4个 rwx 表示创建者的操作权限 r 读,w 写,x 执行 第5到 ...

  8. 第七天 Linux用户管理、RHEL6.5及RHEL7.2 root密码破解、RHEL6.5安装vmware tools

    1.Linux用户管理 Linux系统中,存在三种用户 A.超级用户:root 最高权限,至高无上 在windows中 administrator是可以登录的最高权限,但是,system权限最高,不能 ...

  9. linux用户管理和文件权限

    linux用户管理和文件权限 新建用户:useradd ftpuser      useradd -g gxx userxx修改密码:passwd ftpuser新增用户组:# groupadd gr ...

随机推荐

  1. 【Linux】Apache服务配置

    一. URL 统一资源定位符 http://www.sina.com.cn:80/admin/index.html 二. 环境安装 LAMP 源码包编译安装 版本可以自定义 生产环境 安全 稳定 开发 ...

  2. MTK Android修改System分区

    Z:\rk3326_p_hq_rf8637sa\device\rockchip\common\BoardConfig.mk #Calculate partition size from paramet ...

  3. webpack4.0(01.基础配置和初识)

    1.什么是webpack? 2.webpack可以做什莫? 代码转换.文件优化.代码分割.模块合并.自动刷新.代码校验.自动发布 3.我们要学习webpack的什么? 4.使用webpack 1.首先 ...

  4. Linux学习,账号管理与权限管理

    linux系统本来不认识账号,只是通过UID(用户ID)和GID(所属组ID)来区分账号属性的.而这对应的目录如下: UID ===> /etc/passwd GID ===> /etc/ ...

  5. 2015蓝桥杯分机号(C++C组)

    标题:分机号X老板脾气古怪,他们公司的电话分机号都是3位数,老板规定,所有号码必须是降序排列,且不能有重复的数位.比如:751,520,321 都满足要求,而,766,918,201 就不符合要求.现 ...

  6. 【python实现卷积神经网络】损失函数的定义(均方误差损失、交叉熵损失)

    代码来源:https://github.com/eriklindernoren/ML-From-Scratch 卷积神经网络中卷积层Conv2D(带stride.padding)的具体实现:https ...

  7. java 中类为啥要序列化

    java里为什么要序列化?http://zhidao.baidu.com/link?url=7_wAQ8eAl28vcJPE5OKM5Y0Bo4aINNQokHhRmI9XPszEoTO5QF-gNb ...

  8. 使用Jmeter测试java请求

    1.性能测试过程中,有时候开发想对JAVA代码进行性能测试,Jmeter是支持对Java请求进行性能测试,但是需要自己开发.打包好要测试的代码,就能在Java请求中对该java方法进行性能测试2.本文 ...

  9. ST表(求解静态RMQ问题)

    例题:https://www.acwing.com/problem/content/1272/ ST表类似于dp. 定义st[i][j]表示以i为起点,长度位2^j的一段区间,即[ i , i + 2 ...

  10. 【LeetCode】 99. Recover Binary Search Tree [Hard] [Morris Traversal] [Tree]

    Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing ...