您的位置:首页 > 运维架构 > Linux

三周第一次课

2017-12-16 00:00 92 查看
2.27linux和windows互传文件

3.1 用户配置文件和密码配置文件

3.2 用户组管理

3.3 用户管理

2.27linux和windows互传文件

使用xshell可以实现这个功能,首先需要安装一个包。

yum install -y lrzsz

[root@tianqi-01 ~]# yum install -y lrzsz

已安装:

lrzsz.x86_64 0:0.12.20-36.el7

完毕!

[root@tianqi-01 ~]#

使用sz命令,选中windows中的文件,就可以复制到linux当前目录中来了。

使用rz命令,就可以从linux传文件给windows了。

[root@tianqi-01 winshare]# rz

3.1 用户配置文件和密码配置文件

/etc/passwd和/etc/shadow是linux系统最重要的两个文件,如果没有这两个文件或者这两个文件出了问题,则系统无法正常登陆。

/etc/passwd是用户的密码文件,也是一个核心的配置文件。每创建一个用户,都会在这个配置文件里增加一行。之前创建了2个用户,aming和user1,这个文件下面自然增加两行。

[root@tianqi-01 ~]# ls /etc/passwd

/etc/passwd

[root@tianqi-01 ~]# tail -5 /etc/passwd

gnome-initial-setup:x:993:988::/run/gnome-initial-setup/:/sbin/nologin

avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

aming:x:1002:1002::/home/aming:/bin/bash

user1:x:1003:1003::/home/user1:/bin/bash

这个文件的结构是这样的,首先每一个用户一行,然后由冒号分割为了七段。

root:x:0:0:root:/root:/bin/bash

第一段是用户名,root是超级管理员,它是代表用户账号的字符串。用户名中的字符可以是大小写字母、数字、减号(不能出现在首位)、点或下划线,其他字符不合法。虽然用户名中可以出现点,但不建议使用,尤其在首位。另外,减号也不建议使用,容易造成混淆。

第二段存放的是该账户的口令。早期的Unix系统口令确实存放在这里,但基于安全因素,后来就将其放到/etc/shadow中了,这里用一个x代替。

第三段是一个数字,这个数字代表用户标识号,也称为uid。系统就是通过这个数字识别用户身份的。这里的0就是root,也就是说我们可以修改test用户的uid为0,那么系统就会认为test和root是同一个账户。uid的取值范围是0~65535(现在已经可以支持到4294967294),0是超级管理员root的标识号,CentOS7的普通用户标识号从1000开始。如果我们自定义一个普通用户,你会看到该用户的标识号是大于或等于1000的。

第四段也是数字,表示组织标号,也称为gid。这个字段对应着/etc/group中的一条记录,其实/etc/group和/etc/passwd基本类似。

第五段表示的是用户的注释信息,没有实际的作用,通常记录的是用户的一些属性,例如姓名、电话、地址等,不用去关注。

第六段是用户的家目录,当用户登陆时,就处在这个目录下。root的家目录是/root,普通用户的家目录则为/home/username,用户家目录是可以定义的。比如,建立一个普通用户test1,要想让test1的家目录在/data目录下,只要将/etc/passwd文件中对应该用户的那行中的本字段修改为/data即可。

最后一段是用户的shell,用户登陆后,要启动一个进程,用来将用户下达的指令传给内核,就是shell。linux中的shell有sh、csh、ksh、tcsh、bash等多种,而Redhat/CentOS的shell就是bash。查看/etc/passwd文件,该字段除了/bin/bash,还有很多/sbin/nologin(用户不能登录,即使给用户设定了密码,它也不能登录)。如果想建立一个不允许登陆的账号,可以把该字段改成/sbin/nologin,默认是/bin/bash。

能登陆首先要有一个可以交互的终端,我们用xshell或者PuTTY登录CentOS,我们获得了一个窗口,它实际上就是一个shell,可以和机器交互的这样一个窗口。

/etc/shadow文件是用来专门存放密码的,/etc/shadow是和用户文件一一对应的。它和/etc/passwd类似,分割成9个字段。

第1个字段是用户名,与/etc/passwd对应。

第2个字段是用户的密码,我们仅仅给root用户设置了密码,所以只有root用户这一行有密码。这个密码是加密的,而且这个密码是不能编译的。你由一个明文可以获得这样一个密码,但是反过来是不行的。

第3个字段是一个数字,它是一个天数(从1970年1月1日开始到密码更改的天数)。

sp_lstchg -

最近更改密码的日期(日期计算方法是从1970年1月1日开始的天数)

第4个字段是要过多少天才可以更改密码,这一段默认是0,表示不受限制。

第5个字段是密码多少天后到期,在多少天内必须更改密码,即这么多天以后密码就不能更改了。

第6个字段提醒用户密码还有多少天到期。

第7个字段是账号的失效期限。密码已经到期,没有更改密码,还有这么多天,账号就会被锁定。

第也是锁定的时间,表示账号的生命周期。

sp_expire - days since Jan 1, 1970 when account

will be disabled

密码到期后就不能用了。

最后1个字段是保留字段,没有实际意义。

这些天数工作中也用不到,了解即可。

[root@tianqi-01 ~]# ls /etc/shadow

/etc/shadow

[root@tianqi-01 ~]# cat !$

cat /etc/shadow

root:$6$kiWmfiUFLMmjsvrI$tG71mGO0eTx2SNr4P.6fAC/qmRkTkeg5V8F/wLwDUGX26K4VG7qVNS/VBilPe8kiy0hwWVjBbZ733zPQ4v9SJ.::0:99999:7:::

bin:*:17110:0:99999:7:::

daemon:*:17110:0:99999:7:::

adm:*:17110:0:99999:7:::

lp:*:17110:0:99999:7:::

sync:*:17110:0:99999:7:::

shutdown:*:17110:0:99999:7:::

halt:*:17110:0:99999:7:::

mail:*:17110:0:99999:7:::

operator:*:17110:0:99999:7:::

games:*:17110:0:99999:7:::

ftp:*:17110:0:99999:7:::

nobody:*:17110:0:99999:7:::

systemd-network:!!:17491::::::

dbus:!!:17491::::::

polkitd:!!:17491::::::

postfix:!!:17491::::::

sshd:!!:17491::::::

chrony:!!:17491::::::

tianqi:$6$i/4OZP78$lFKojsj75bgwIB91eTNZ9qVhuwgHEF8L.rbMOaQmPBu0EGrB7gEeZQEZMoOfu1DI6VGqbS7RgVFIr2HHZRVMg/:17491:0:99999:7:::

test:$6$5ST8MlnV$9PbTl8ad59CtGBzfxK6lROXI/FeBXXsCyMCa1yUv6dsnFPjnqt4.MY0SwZnmBv0GfbRkgnJ01eS9iG86iumoX/:17494:0:99999:7:::

rpc:!!:17496:0:99999:7:::

radvd:!!:17496::::::

saslauth:!!:17496::::::

rtkit:!!:17496::::::

tss:!!:17496::::::

usbmuxd:!!:17496::::::

colord:!!:17496::::::

qemu:!!:17496::::::

abrt:!!:17496::::::

geoclue:!!:17496::::::

setroubleshoot:!!:17496::::::

rpcuser:!!:17496::::::

nfsnobody:!!:17496::::::

pulse:!!:17496::::::

gdm:!!:17496::::::

gnome-initial-setup:!!:17496::::::

avahi:!!:17496::::::

tcpdump:!!:17499::::::

aming:!!:17511:0:99999:7:::

user1:!!:17511:0:99999:7:::

[root@tianqi-01 ~]#

我们给aming用户设定和root一样的密码,如果想在一行中打两个命令,需要用;隔开。

[root@tianqi-01 ~]# passwd aming

更改用户 aming 的密码 。

新的 密码:

无效的密码: 密码少于 8 个字符

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。

[root@tianqi-01~]#head -n1 /etc/shadow ; tail -n2 /etc/shadow

root:$6$kiWmfiUFLMmjsvrI$tG71mGO0eTx2SNr4P.6fAC/qmRkTkeg5V8F/wLwDUGX26K4VG7qVNS/VBilPe8kiy0hwWVjBbZ733zPQ4v9SJ.::0:99999:7:::

aming:$6$3AUjpHV5$HAi4fzP09DeUD1MD4raVKsS2MDujDM/paQPD5CuqWh9xrjML/eteOPnJDDQHo0.fok0I2y5L4j2t6QeKPdBKU0:17518:0:99999:7:::

user1:!!:17511:0:99999:7:::

[root@tianqi-01 ~]#

aming和root用户的密码相同,但是加密的字符串是不同的。

3.2用户组管理

/etc/group是用户组的配置文件。

[root@tianqi-01 ~]# ls /etc/group

/etc/group

[root@tianqi-01 ~]# cat !$

cat /etc/group

root:x:0:

bin:x:1:

daemon:x:2:

sys:x:3:

adm:x:4:

tty:x:5:

disk:x:6:

lp:x:7:

mem:x:8:

kmem:x:9:

wheel:x:10:

cdrom:x:11:

mail:x:12:postfix

man:x:15:

dialout:x:18:

floppy:x:19:

games:x:20:

tape:x:30:

video:x:39:

ftp:x:50:

lock:x:54:

audio:x:63:

nobody:x:99:

users:x:100:

utmp:x:22:

utempter:x:35:

ssh_keys:x:999:

input:x:998:

systemd-journal:x:190:

systemd-network:x:192:

dbus:x:81:

polkitd:x:997:

postdrop:x:90:

postfix:x:89:

sshd:x:74:

chrony:x:996:

tianqi:x:1000:

test:x:1001:

cgred:x:995:

rpc:x:32:

radvd:x:75:

saslauth:x:76:

rtkit:x:172:

tss:x:59:

usbmuxd:x:113:

colord:x:994:

libvirt:x:993:

kvm:x:36:qemu

qemu:x:107:

abrt:x:173:

geoclue:x:992:

setroubleshoot:x:991:

rpcuser:x:29:

nfsnobody:x:65534:

pulse-access:x:990:

pulse-rt:x:989:

pulse:x:171:

gdm:x:42:

gnome-initial-setup:x:988:

avahi:x:70:

tcpdump:x:72:

aming:x:1002:

user1:x:1003:

slocate:x:21:

[root@tianqi-01 ~]#

这个文件没有和/etc/passwd一一对应,不完全一样。但内容类似,因为创建用户的时候就会创建一个跟用户名一样的组。但是具体的字段的含义,不用去深入研究,和/etc/passwd类似。

和/etc/shadwo类似的有一个配置文件,/etc/gshadow,它是组的密码配置文件,但是几乎没有动过这个文件。

下面带-的文件是系统自动帮我们备份的,如果把shadow或者passwd文件删了,还可以把shadow-或者passwd-拷贝成shadow或者passwd。这样的两个文件可能不太一样,但是差别不大。

[root@tianqi-01 ~]# ls /etc/shadow

shadow shadow-

[root@tianqi-01 ~]# ls /etc/gshadow

gshadow gshadow-

[root@tianqi-01 ~]# ls /etc/gshadow

[root@tianqi-01 ~]# ls /etc/passwd

passwd passwd-

[root@tianqi-01 ~]# ls /etc/group

group group-

看一下这两个文件的时间,目前来看他们的时间是一样的。

[root@tianqi-01 ~]# ls -l /etc/passwd*

-rw-r--r-- 1 root root 2058 12月 11 04:38 /etc/passwd

-rw-r--r--. 1 root root 2017 12月 11 04:38 /etc/passwd-

[root@tianqi-01 ~]#

现在创建一个组grp1,查看配置文件。

新增组的命令是groupadd,格式如下:

groupadd [-g GID] groupname,示例如下:

[root@tianqi-01 ~]# groupadd grp1

[root@tianqi-01 ~]# tail -n1 /etc/group

grp1:x:1004:

如果不加-g选项,则按照系统默认的gid创建组。跟uid一样,gid也是从1000开始的。

[root@tianqi-01 ~]# groupadd -g 1005 grp2

[root@tianqi-01 ~]# tail -n3 /etc/group

slocate:x:21:

grp1:x:1004:

grp2:x:1005:

使用命令groupdel可以删除一个组。

[root@tianqi-01 ~]# groupdel grp1

[root@tianqi-01 ~]# tail -n3 /etc/group

user1:x:1003:

slocate:x:21:

grp2:x:1005:

删除组的前提是组里面没有用户,只要有用户就删除不了。

[root@tianqi-01 ~]# groupdel user1

groupdel:不能移除用户“user1”的主组

3.3用户管理

使用命令useradd可以创建用户,该命令格式如下:

useradd [-u UID] [-g GID] [-d HOME] [-M] [-S],各选项的含义如下:

-u:表示自定义UID。

-g:表示使新增用户属于已经存在的某个组,后面可以跟gid,也可以跟组名。

-d:表示自定义用户的家目录。

-M:表示不建立家目录。

-s:表示自定义shell。

[root@tianqi-01 ~]# useradd user2

[root@tianqi-01 ~]# tail -n2 /etc/passwd

user1:x:1003:1003::/home/user1:/bin/bash

user2:x:1004:1004::/home/user2:/bin/bash

如果useradd不加任何选项,直接跟用户名,则会创建一个跟用户名同名的组。当然很多时候需要我们自己去定义uid、gid或者所属的组。

普通用户的uid是从1000开始的,创建用户的同时可以指定一个uid。

[root@tianqi-01 ~]# useradd -u 1005 -g grp2 user3

[root@tianqi-01 ~]# tail -n3 /etc/passwd

user1:x:1003:1003::/home/user1:/bin/bash

user2:x:1004:1004::/home/user2:/bin/bash

user3:x:1005:1005::/home/user3:/bin/bash

下面创建用户的同时指定家目录和shell。

[root@tianqi-01 ~]# useradd -u 1006 -g grp2 -d /home/aming111 -s /sbin/nologin user4

[root@tianqi-01 ~]# tail -n4 /etc/passwd

user1:x:1003:1003::/home/user1:/bin/bash

user2:x:1004:1004::/home/user2:/bin/bash

user3:x:1005:1005::/home/user3:/bin/bash

user4:x:1006:1005::/home/aming111:/sbin/nologin

[root@tianqi-01 ~]# ls /home/

aming aming111 test tianqi user1 user2 user3

-M可以在创建用户的时候不创建家目录,/home/下没有user5目录。不创建家目录,但是有家目录,就是/home/user5。不代表没有,只是没有创建。

[root@tianqi-01 ~]# useradd -M user5

[root@tianqi-01 ~]# tail -n3 /etc/passwd

user3:x:1005:1005::/home/user3:/bin/bash

user4:x:1006:1005::/home/aming111:/sbin/nologin

user5:x:1007:1007::/home/user5:/bin/bash

[root@tianqi-01 ~]# ls /home/

aming aming111 test tianqi user1 user2 user3

下面创建一个新的组,指定gid,再创建一个新的用户。

[root@tianqi-01 ~]# groupadd -g 1010 grp3

[root@tianqi-01 ~]# useradd -g grp3 user6

[root@tianqi-01 ~]# tail -n5 /etc/passwd

user2:x:1004:1004::/home/user2:/bin/bash

user3:x:1005:1005::/home/user3:/bin/bash

user4:x:1006:1005::/home/aming111:/sbin/nologin

user5:x:1007:1007::/home/user5:/bin/bash

user6:x:1008:1010::/home/user6:/bin/bash

下面再创建一个用户,看一下它的gid是多少。

[root@tianqi-01 ~]# useradd user7

[root@tianqi-01 ~]# tail -n5 /etc/passwd

user3:x:1005:1005::/home/user3:/bin/bash

user4:x:1006:1005::/home/aming111:/sbin/nologin

user5:x:1007:1007::/home/user5:/bin/bash

user6:x:1008:1010::/home/user6:/bin/bash

user7:x:1009:1009::/home/user7:/bin/bash

发现它的gid是从1009开始的。

useradd和adduser是一样的

[root@tianqi-01 ~]# adduser user8

[root@tianqi-01 ~]# tail -n5 /etc/passwd

user4:x:1006:1005::/home/aming111:/sbin/nologin

user5:x:1007:1007::/home/user5:/bin/bash

user6:x:1008:1010::/home/user6:/bin/bash

user7:x:1009:1009::/home/user7:/bin/bash

user8:x:1010:1011::/home/user8:/bin/bash

命令userdel是删除用户的命令,该命令格式如下:

userdel [-r] username,其中,-r的作用是,当删除用户时,一并删除该用户的家目录。

[root@tianqi-01 ~]# userdel user8

[root@tianqi-01 ~]# tail -n5 /etc/passwd

user3:x:1005:1005::/home/user3:/bin/bash

user4:x:1006:1005::/home/aming111:/sbin/nologin

user5:x:1007:1007::/home/user5:/bin/bash

user6:x:1008:1010::/home/user6:/bin/bash

user7:x:1009:1009::/home/user7:/bin/bash

但是并没有删除用户的家目录。主要是怕误删用户的文件,主要是留给管理员,管理员觉得没用了就可以删除了。

[root@tianqi-01 ~]# ls /home/

aming aming111 test tianqi user1 user2 user3 user6 user7 user8

[root@tianqi-01 ~]# rm -rf /home/user8

使用-r选项可以直接删除用户的家目录

[root@tianqi-01 ~]# userdel -r user7

[root@tianqi-01 ~]# ls /home/

aming aming111 test tianqi user1 user2 user3 user6

友情链接:阿铭Linux
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux