2018.5.18课堂笔记

一.用户配置文件与密码配置文件

1.1 /etc/passwd是由 “ :” 分割7个字段,每个字段的含义如下:

Last login: Wed May 16 01:43:19 2018 from 192.168.93.1
[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:998:996:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:997:995:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
第1个字段为用户名;
第2个字段为该账号的口令,存储的是密码;
第3个字段为一个数字,这个数字代表用户标识号,也称为“uid”,在这里,用户标识号是从1000开始,如果我们创建一个普通用户,该账号的uid是从1000以后往下排序的;
第4个字段也是数字,该字段标识组标识号,称gid,这个字段对应着/etc/group中的一条记录,其实/etc/group和/etc/passwd相似;
第5个字段标识注释信息;
第6个字段为普通用户的家目录,root的家目录就是/root,普通用户的家目录则/home/username,用户的家目录也是可以修改的,在/etc/passwd配置文件中修改;
第7个字段为用户的shell,用户登录后,要启动一个进程们用来将用户下达的命令传给内核,实现一个交互的作用,这就是shell。

1.2 /etc/shadow含义,专门放用户的密码的配置文件;/etc/shadow与/etc/passwd类似由:分割成9段示例命令如下:

root:$6$zwh0z1JRQZGvf7mF$QL9hItHHPHFQ8SaXwKwiDF2fyuEbcvST5QYJTpdtMutC/vKNnBD5Ulqamzar2Zkc7fMT0mJHF9RR.GkHPeyCl1::0:99999:7:::
bin:*:16659:0:99999:7:::
daemon:*:16659:0:99999:7:::
adm:*:16659:0:99999:7:::
lp:*:16659:0:99999:7:::
sync:*:16659:0:99999:7:::
shutdown:*:16659:0:99999:7:::
halt:*:16659:0:99999:7:::
mail:*:16659:0:99999:7:::
operator:*:16659:0:99999:7:::
games:*:16659:0:99999:7:::
ftp:*:16659:0:99999:7:::
nobody:*:16659:0:99999:7:::
avahi-autoipd:!!:17662::::::
systemd-bus-proxy:!!:17662::::::
systemd-network:!!:17662::::::
dbus:!!:17662::::::
polkitd:!!:17662::::::
tss:!!:17662::::::
postfix:!!:17662::::::
sshd:!!:17662::::::

 

第1个字段为用户名与/etc/passwd对应
第2个字段为用户密码,是该账户的真正密码已经加密
第3个字段为上次更改密码的日期
第4个字段为要过多少天才可以更改密码,默认为0,即不受限制
第5个字段为密码多少天后到期
第6个字段为密码到期前的警告期限
第7个字段为帐号失效期限
第8个字段为帐号的生命周期
第9个字段为保留用的,没有意义.

二.用户与用户组管理

2.1用户组管理:

新增组的命令groupadd:
命令groupadd的格式为groupadd [-g GID] groupname示例命令如下:
[root@localhost ~]# groupadd shiyan1
[root@localhost ~]# tail -n1 /etc/group
shiyan1:x:1000:
如果不加-g选项,则按照系统默认的gid创建组。跟uid一样gid也是从1000开始的。我们也可以自定义gid
[root@localhost ~]# groupadd -g 1004 shiyan2
[root@localhost ~]# tail -n2 /etc/group
shiyan1:x:1000:
shiyan2:x:1004:

 

删除组命令groupdel:
groupdel没有特殊情况,但有一种情况无法删除如下所示
[root@localhost ~]# useradd wang -g shiyan1
[root@localhost ~]# groupdel shiyan1
groupdel:不能移除用户“wang”的主组
因为shiyan1组中有一个wang用户,只有删除或转移这个用户才能继续删除.

2.2用户管理:

增加用户的命令useradd:
命令介绍:
useradd 增加用户 格式 : useradd 后面跟想创建的用户名
还有一种给创建的用户,增加组名及家目录什么的;
格式如下:useradd [-u UID] [-g GID] [-d HOME] [-M] [-s] ,
-u 表示自定义UID 
-g 表示使新增用户属于已经存在的某个组,后面可以跟组的id,也可以跟组名
-d 表示自定义目录的家目录
-M 表示不建立家目录
-s 表示自定义shell

 

如果useradd不加任何选项,直接跟用户名,则会创建一个跟用户名同名的组,当然很多时候需要我们自己去定义uid,gid与所属的组:示例命令如下:
[root@localhost ~]# useradd -u 1004 -g 1005 -M -s /sbin/nologin wang3
useradd:“1005”组不存在
[root@localhost ~]# useradd -u 1004 -g 1006 -M -s /sbin/nologin wang3
useradd:“1006”组不存在
[root@localhost ~]# useradd -u 1004 -g 1001 -M -s /sbin/nologin wang3
[root@localhost ~]# useradd-u 1006 -g shiyan1 wang4
-bash: useradd-u: 未找到命令
[root@localhost ~]# useradd -u 1006 -g shiyan1 wang4
[root@localhost ~]# tail -n2 /etc/passwd
wang3:x:1004:1001::/home/wang3:/sbin/nologin
wang4:x:1006:1000::/home/wang4:/bin/bash
[root@localhost ~]# tail -n2 /etc/group
shiyan2:x:1004:
wang2:x:1001:

删除帐号的命令userdel:
格式:userdel [-r] username 
其中-r选项的作用是,当删除用户时,一并删除用户的家目录。
我们先来查看wang4的家目录示例命令如下:

[root@localhost ~]# ls -ld /home/wang4
drwx------ 2 wang4 shiyan1 59 5月  21 17:21 /home/wang4
[root@localhost ~]# userdel wang4
[root@localhost ~]# ls -ld /home/wang4/
drwx------ 2 1006 shiyan1 59 5月  21 17:21 /home/wang4/

这里只删除了用户并没有删除这个用户下的家目录
 

 

usermod 设置扩展组:
概念:更改用户属性的一个命令。
用法:usermod [选项] 后面跟你需要操作的内容 [用户名]
选项:
  -c,    --comment 注释            GECOS 字段的新值
  -d,   --home HOME_DIR           用户的新主目录
  -e,   --expiredate EXPIRE_DATE  设定帐户过期的日期为 EXPIRE_DATE
  -f,    --inactive INACTIVE       过期 INACTIVE 天数后,设定密码为失效状态
  -g,   --gid GROUP               强制使用 GROUP 为新主组
  -G,  --groups GROUPS           新的附加组列表 GROUPS
  -a,  --append GROUP            将用户追加至上边 -G 中提到的附加组中,
  -l, --login LOGIN             新的登录名称
  -L, --lock                    锁定用户帐号
  -m, --move-home               将家目录内容移至新位置 (仅于 -d 一起使用)
  -o, --non-unique              允许使用重复的(非唯一的) UID
  -p, --password PASSWORD       将加密过的密码 (PASSWORD) 设为新密码
  -R, --root CHROOT_DIR         chroot 到的目录
  -s, --shell SHELL             该用户帐号的新登录 shell
  -u, --uid UID                 用户帐号的新 UID
  -U, --unlock                  解锁用户帐号
  -Z, --selinux-user  SEUSER       用户账户的新 SELinux 用户映射

 

举个例子,我们先来查看一下wang4的uid和gid还有扩展组:
[root@localhost ~]# id wang4
uid=1006(wang4) gid=1000(shiyan1) 组=1000(shiyan1)
然后在这里,我们想让wang4再属于另外一个组,叫扩展组:
[root@localhost ~]# usermod -G shiyan2 wang4
[root@localhost ~]# id wang4
uid=1006(wang4) gid=1000(shiyan1) 组=1000(shiyan1),1004(shiyan2)

三.用户密码管理

passwd若后面不加用户名,就是给自己设定密码
[root@localhost ~]# passwd
更改用户 root 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

如何设置用户密码,格式 passwd [username] (这里username填写你的用户),假设新建一个用户wang6
[root@localhost ~]# useradd wang6
[root@localhost ~]# passwd wang6
更改用户 wang6 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
在这里,只有root才可以修改其他账户的密码,普通账户只能修改自己的密码。

我们可以用tail命令查看配置文件后十行信息
[root@localhost ~]# tail /etc/shadow
systemd-bus-proxy:!!:17662::::::
systemd-network:!!:17662::::::
dbus:!!:17662::::::
polkitd:!!:17662::::::
tss:!!:17662::::::
postfix:!!:17662::::::
sshd:!!:17662::::::
wang:!!:17672:0:99999:7:::
wang4:!!:17672:0:99999:7:::
wang6:$6$a/1GugZW$S68ubfIEjVsA0k8dLCigAAaJpgHEL0PpaPDXUpDMZlA4K4MuHwHf7lZ0N1VhjsQCtMwyRqtKGg//D5PTY5J1S0:17672:0:99999:7:::
这里我们可以看见有加密的字符串,这里是设置过密码的用户,然后"!!"表示密码为空。

 

如何锁定一个用户登录,-l,-L两种选项
[root@localhost ~]# passwd -l wang4
锁定用户 wang4 的密码 。
passwd: 操作成功
[root@localhost ~]# tail -n2 /etc/shadow
wang4:!!:17672:0:99999:7:::
wang6:$6$a/1GugZW$S68ubfIEjVsA0k8dLCigAAaJpgHEL0PpaPDXUpDMZlA4K4MuHwHf7lZ0N1VhjsQCtMwyRqtKGg//D5PTY5J1S0:17672:0:99999:7:::
注意,在这里 密文密码前方有2个“!”,表示锁定用户。
如何解锁一个用户登录,-u,-U两种选项
[root@localhost ~]# passwd -u wang6
解锁用户 wang6 的密码。
passwd: 操作成功
[root@localhost ~]# tail -n2 /etc/shadow
wang4:!!:17672:0:99999:7:::
wang6:$6$a/1GugZW$S68ubfIEjVsA0k8dLCigAAaJpgHEL0PpaPDXUpDMZlA4K4MuHwHf7lZ0N1VhjsQCtMwyRqtKGg//D5PTY5J1S0:17672:0:99999:7:::
注意看,这里密文前面没有“!”,表示解锁成功。

--stdhin的用法,用passwd直接修改wang6用户的密码
[root@localhost ~]# passwd --stdin wang6
更改用户 wang6 的密码 。
wangwangwang
passwd:所有的身份验证令牌已经成功更新。
--stdin是用来强制设定一个用户的密码

用echo,通过管道符一条命令设置密码
[root@localhost ~]# echo "wangwangwang"|passwd --stdin wang6
更改用户 wang6 的密码 。
passwd:所有的身份验证令牌已经成功更新。
这条命令的含义是,echo(显示) “123123” 通过管道符,把前面命令的结果,传递(输出)给后面的命令。

mkpasswd命令:
首先安装一个expect包,这个包可以实现随机的字符串
[root@localhost ~]#yum install -y expect
[root@localhost ~] mkpasswd 
?UnsAu31b
这个就是随机生成的字符串了

我们也可以指定密码长度。-l

[root@localhost ~]# mkpasswd -l 20
m2zov@itxghcwIVq2spe
 

我们还可以指定密码长度同时指定有几个特殊字符和数字

[root@localhost ~]# mkpasswd -l 20 -s 2 -d 3
Rz1Eyxm83at]iv=itixm
这里-l表示字节,-s表示特殊符号,-d表示有几个数字。

 

四.切换用户与限制远程登录

su命令:

格式:su [-] username
后面可以跟-,也可以不跟,加上-之后可以彻底切换过去,包括把各种变量也切换过去。
切换用户
[root@localhost ~]# su - wang6
[wang6@localhost ~]$ 
如何切换用户的同时执行一条命令呢 su - -c “命令” 用户
[root@localhost ~]# su --c "touch /tmp/wang.txt" wang6
[root@localhost ~]# su - wang6
上一次登录:一 5月 21 19:10:27 CST 2018pts/0 上

sudo命令 指定命令:
概念:使用sudo命令执行一个只有root才能执行的命令,仅此一个。
但是还是需要输入密码,这个密码是用户本身的密码。
只有root用户才能使用sudo命令,普通用户想要使用sudo是需要root预先设定的,我们可以使用visudo命令编辑相关的配置文件,/etc/sudiers。

安装命令:yum install -y sudo

如何设定一个用户临时拥有sudo命令,需要root预先设定
首先查看sudo的配置文件
visdo #查看这个配置文件直接在里面编辑
找到,root ALL=(ALL)   ALL这一行          (:set nu 显示行数),
输入i进入编辑模式,编辑完后,按ESC 再输入:wq保存退出。
这里,后面的是要写绝对路径,用逗号分隔后,后面需要加一个空格。
在下一行添加一个用户临时拥有root权限,第一个ALL默认模仿上面的,括号里面的是用户,将被授予哪个用户的权限,默认就可以了,
第二个ALL 是所有的命令。


限制root远程登陆
只可以限制远程登陆。
远程服务的配置文件在 /etc/ssh/sshd_config,sshd服务配置文件
修改配置文件:
[root@localhost ~]# vi /etc/ssh/sshd_config
在这里找到permintRootlogin 把#去掉把yes改成no 禁止root用户登陆
最后重启服务
[root@localhost ~]# systemctl restart sshd.service
然后就远程登陆不上了.

 

转载于:https://my.oschina.net/u/3856250/blog/1815751

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值