9月19日任务linux
2.27linux和windows互传文件shell
3.1 用户配置文件和密码配置文件windows
3.2 用户组管理centos
3.3 用户管理安全
简单命令行下实现Linux/Windows文件互传bash
前提:使用远程工具Xshell/SecureCRT登陆远程Linux服务器(暂不支持putty)服务器
安装:yum install -y lrzsz工具
使用:ui
rz:Windows内文件传至Linux加密
用法: rz + 回车键
rz传递的文件默认保存在Linux系统的当前目录下,也能够更改存放目录
sz:Linux内文件传至Windows
用法: sz + File[s]+ Enter
只能传递文件,没法传整个目录
该文件每行表明一个用户,每行由7个字段组成,用冒号分割。
[root@localhost ~]# head /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 uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin .....
以第一列为例:root:x:0:0:root:/root:/bin/bash
用户名:表明用户帐号的用户名;本例中为root
密码:在之前存储着该用户的密码,可是发现不安全,使用x占位,真实密码在/etc/shadow文件内(加密);本例中为x。
uid:用户标识号,取值范围为0-65535,对于6.x版本的普通用户uid从500开始,7.x版本从1000开始, root用户的uid为0,0-499表示系统用户;本例中为0。
gid:组标识号;本例中为0
注释说明:对用户进行说明,可选内容,使用chfn修改;本例中为root。
用户家目录:能够在/etc/passwd内修改;本例中为/root。
用户登陆shell:有sh、bash、zsh、csh、tcsh等,设置了/sbin/nologin的用户不容许登陆;本例中为/bin/bash。
专门用来设置用户秘密的文件,每一行对应与/etc/passwd的每一行的用户的密码信息; 一样以冒号分割为9个字段
[root@localhost ~]# head /etc/shadow root:$6$uvD2N3N9$/lS24AXbOwnQWQcDwuZ0Fc2Dn2UJFTS99rW2Nz08M46ZrJ8hs7QaGUNtANSnvWYucY8HVSkN/2CH4S4MoSctK.:17408:0:99999:7::: bin:*:15980:0:99999:7::: daemon:*:15980:0:99999:7::: adm:*:15980:0:99999:7::: lp:*:15980:0:99999:7::: sync:*:15980:0:99999:7::: shutdown:*:15980:0:99999:7::: halt:*:15980:0:99999:7::: mail:*:15980:0:99999:7::: uucp:*:15980:0:99999:7::: ...
可使用man shadow查看/etc/shadow文件内容具体含义
具体每列含义以下:
用户名:对应/etc/passwd文件的用户名
密码:真实密码(已加密,没法从该加密的字符串获取真实密码),*表示无密码
上次更改密码的时间:自1970.1.1以来的天数
过多少天后才能够修改密码:默认为0,表示不受限
密码多少天后到期,必须修改:默认99999,表示不需修改
密码到期前的警告天数:默认为7,到期前7天警告
帐户失效期限:密码到期后n天,帐户失效
帐户的生命周期:表明帐户在该日期前可使用,到期后帐户被做废(自1971.1.1以来的天数)
保留使用
系统会自动将/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow文件进行备份,
若是误操做,能够将对于的如passwd-文件拷贝后恢复。须要注意的是2个文件可能存在部分差异,但关系不大。
普通用户默认的uid/gid从1000开始(centos6.x从500开始)
[root@localhost ~]# groupadd castiel [root@localhost ~]# tail -n 1 /etc/group castiel:x:1000:
用法:groupadd [-g gid] group
[root@localhost ~]# groupadd -g 1024 test [root@localhost ~]# tail -n 1 /etc/group test:x:1024: # 不指定gid,默认从以前最大的gid后一个开始; # 若是未设置或普通组,会从1000开始计数 [root@localhost ~]# tail -n 1 /etc/group test1:x:1025:
用法:groupdel group (删除组的前提:组内无用户)
[root@localhost ~]# groupdel test1 [root@localhost ~]# tail -n 1 /etc/group test:x:1024: 以前最后一个显示的test1组已经删除
几个经常使用参数
-u 指定新增用户的uid或用户名;默认1000或在最大uid基础上+1;
-g 指定新增用户的gid或组名(必须是已存在的组);默认等于uid值,若是该值已被使用,就在该值上自增1,不然不会自增长;
-d 指定新增用户的家目录;默认/home/USER;
-M 表示新增用户时不建立同名家目录;
-s 指定其登陆使用的shell;默认/bin/bash;
-p 建立新用户的同时指定密码;默认无密码;
-r 建立系统用户(不加默认建立普通用户);
-e 设置帐户到期日期,格式YYYY-MM-DD;默认永不到期;
-f 帐户到期至其失效的天数;默认为7;
-G 指定扩展组(一个用户有多个所属组);默认不加入任何扩展组;
使用useradd新建用户,参数能够随意搭配,不指定即为默认值
# 注意指定-g的时候,该gid的组必须存在,不然会出错 # 不指定-g参数时,默认会建立同名的组, # gid的值从最大的gid后按顺序使用; # 默认的uid的值也一样按顺序选择 [root@localhost ~]# groupadd -g 1080 test # 一次性指定uid、gid、家目录、shell、密码、 # 到期日期、到期后失效天数 [root@localhost ~]# useradd -u 1024 \ > -g 1080 \ > -d /home/test \ > -s /bin/chsh \ > -p 123456 \ > -e 2017-10-25 \ > -f 2 \ > -G castiel test [root@localhost ~]# tail -n1 /etc/passwd test:x:1024:1080::/home/test:/bin/chsh # 使用-p指定的密码,在/etc/shadow内是明文显示的,不太安全!! # 但适合在脚本内建立用户! [root@localhost ~]# tail -n1 /etc/shadow test:123456:17460:0:99999:7:2:17464: # 17464即2017-10-25 # -G 将test组加到了castiel用户的扩展组内 [root@localhost ~]# tail -n 2 /etc/group castiel:x:1000:test test1:x:1080:
-r 参数 删除用户的同时删除其家目录(包括其内的文件)
不加-r参数 用户的家目录及email文件不会被删除(未彻底删除用户)
等效于-r参数的操做:执行userdel命令后手动删除用户家目录和/var/spool/mail/USER目录
# 建立2个普通用户,会同时建立同名组、家目录以及email文件 [root@localhost ~]# useradd test1 [root@localhost ~]# useradd test2 # 以加不加参数做为对照 [root@localhost ~]# userdel test1 [root@localhost ~]# userdel -r test2 # /etc/passwd和/etc/shadow文件内的信息已删除 [root@localhost ~]# tail -n 2 /etc/passwd /etc/shadow ==> /etc/passwd <== chrony:x:997:995::/var/lib/chrony:/sbin/nologin castiel:x:1000:1000::/home/castiel:/bin/bash ==> /etc/shadow <== chrony:!!:17456:::::: castiel:!!:17460:0:99999:7::: # test2用户的家目录以及mail文件已删除,test1还在(删除不完全) [root@localhost ~]# ls -ld /home/test1 /home/test2 /var/spool/mail/test1 /var/spool/mail/test2 ls: 没法访问/home/test2: 没有那个文件或目录 ls: 没法访问/var/mail/test2: 没有那个文件或目录 drwx------. 2 1001 1001 62 ... /home/test1 -rw-rw----. 1 1001 mail 0 ... /var/mail/test1
关于用户建立时的mail文件,它实际上会建立2个文件:/var/spool/mail/USER和/var/mail/USER,
这2个文件互为硬链接
[root@localhost ~]# ls -li /var/spool/mail/test1 /var/mail/test1 17061940 -rw-rw----. 1 1001 mail 0 ... /var/mail/test1 17061940 -rw-rw----. 1 1001 mail 0 ... /var/spool/mail/test1
手动删除用户步骤:
删除/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow文件中的用户信息
删除用户家目录
删除用户邮件文件/var/spool/mail/USER或/var/mail/USER
更改用户属性
-g 修改用户gid或组名(组需存在)
-u 修改uid或用户名
-G 设置用户还属于的扩展组
对于-G参数须要注意的是后接的扩展组只有一个组时,再次使用相同方法想添加扩展组会不行的,它将覆盖原扩展组!
同时建立多个扩展组的方法是将多个组用逗号链接一块儿设置!!
-s 修改shell
-d 修改家目录
-e 修改过时日期
-f 修改帐户到期至其失效的天数
-L 锁定用户,不让其登陆
-U 解锁因-L锁定的用户
用法:passwd USER(不加USER,修改当前用户的密码;/etc/passwd文件有set_uid位,使得普通用户也能够修改本身的密码)
对于/etc/shadow文件的第二个密码字段
!! 没有密码,没法登陆
* 密码被锁定,没法使用、登陆
一串字符串,表示用户有密码但 加密
凡有!!或*,代表帐户没法登陆
锁定密码: passwd -l USER
执行该命令后有密码的用户会在其/etc/shadow文件的密码字段(加密的字符串)前加上!!;
解锁密码:passwd -u USER
--stdin,密码只须要输入一次:passwd --stdin USER
长度大于10个字符
包含大小写、数字和特殊字符
不规则性(不要全字母或数字)
不要包含本身的生日、姓名等易被获取的信息
不要多个帐户共用一个密码
使用命令来建立密码
安装: yum install expect
使用方法
-l num 建立的密码长度
-d num 建立的密码中数字的个数
-s num 建立的密码中特殊字符的个数
-C num 建立的密码中大写数字的个数
-c num 建立的密码中小写数字的个数
不加参数,默认建立的密码长度为9位,包含大小写字母、数字和特殊字符!
[root@centos7 ~]# mkpasswd nf72HG?ra [root@centos7 ~]# mkpasswd -l 12 -c 3 -C 5 -s 2 W$]46NkcADfX