本篇内容介绍了“Linux的shadow文件有什么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
在linux中,口令文件在/etc/passwd中,早期的这个文件直接存放加密后的密码,前两位是”盐”值,是一个随机数,后面跟的是加密的密码。为了安全,现在的linux都提供了 /etc/shadow这个影子文件,密码放在这个文件里面,并且是只有root可读的。
richy:$6$70rKewE7OH/ZJCRI$TPwG9kLBIzZwKDKckpsnIYSTyXKXwIUplK0xZlPVkMgCxexz1a0rA70DJfD8eWEwOIxwcJuxj7Fr6zdKS/Osn1:17009:0:99999:7:::
1.与/etc/passwd文件中的登录名对应的登录名;
2.加密后的密码;
3.自1970年1月1日(上次修改密码的日期)到当天的天数;
4.多少天后才能更改密码;
5.多少天后必须更改密码;
6.密码过期前提前多少天提醒用户更改密码;
7.密码过期后多少天禁用用户账户;
8.用户账户被禁用的日期,用自1970年1月1日到当天的天数表示;
9.预留字段,给将来使用; 使用shadow,Linux系统可以更好的控制用户密码了,他可以控制用户多久更改一次密码,以及密码未更新的话多久禁用该用户账户。
1.查看Linux系统默认的useradd添加值: [root@alone ~]# /usr/sbin/useradd -D
GROUP=100
==>新用户会被添加到GID为100的公共组 HOME=/home
==>新用户的HOME目录将位于/home/账户名 INACTIVE=-1
==>新用户账户密码在过期后不会被禁用 EXPIRE=
==>新用户账户未被设置为某个日期后就过期 SHELL=/bin/bash
==>新用户账户将bash shell 作为默认shell SKEL=/etc/skel
==> 系统会将/etc/skel目录下的内容复制到用户的HOME目录下 CREATE_MAIL_SPOOL=yes
==>系统为该用户账户在maill目录下创建一个用于接收邮件的文件
更改默认值的参数: -b default_home
更改默认用户HOME目录位置 -e expiration_date
更爱用户的过期日期 -f inactive
更改用户从密码过期到账户被禁用的天数 -g group
更改默认的组名或GID -s shell
更改默认的登录shell 例子:
[root@alone skel]# useradd -D -s /bin/tsch[root@alone skel]# useradd -DGROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/tsch SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
userdel只删除/etc/passwd文件中的用户信息,而不会删除系统中属于该账户的任何文件。 如果加上-r参数,userdel 会删除用户的HOME目录及mail目录。然而系统上仍可能存有该用户的其他文件,可能会造成一些问题。 加上-r参数的例子:
[root@alone skel]# /usr/sbin/userdel -r test[root@alone skel]# ls -al /home/tesls: 无法访问/home/tes: 没有那个文件或目录
修改用户信息的工具如下 usermod
修改用户账户的字段,可以指定主要组以及附加组的所属关(权限) passwd
修改已有用户的密码 chpasswd
从文件中读取登录名密码对,并更新密码 chage
修改密码的过期日期 chfn
修改用户账户的备注信息 chsh
修改用户账户的默认登录shell
usermod 能用来修改/etc/passwd文件中的大部分字段,只需用相应的参数就行。参数大部分跟useradd命令一样,比如 -c
用来修改过期日期, -g
修改默认的登录组:-l
修改用户账户的登录名 -L
锁定账户,这样用户就无法登录了-p
修改账户的密码-U
解除锁定,解除后用户能正常登录 以上-L
参数尤其适用,用这个参数就能锁定账户,用户就无法登录,而不用删除账户和用户的数据,要让账户恢复正常,只要加-U
参数就行。
改变用户的密码最简单就是用passwd
命令: [root@alone skel]# passwd test
更改用户 test 的密码 。
新的 密码:
无效的密码: 它基于字典单词
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
-e`选项能强制用户下次登录时修改密码; 如果需要为系统中大量用户来修改密码,chpasswd命令能让事情简单许多,chpasswd命令能从标准输入自动读取登录名和密码对(冒号分隔)列表,给密码加密,然后为用户账户设置,也可以用重定向命令来将含有`userid:passwd`对的文件重定向给命令: `[root@alone skel]# chpasswd
chsh、chfn和chage工具专门用来修改特定账户信息。chsh命令用来快速修改默认的用户登录shell。使用时必须用shell的全路径名作为参数,不能只用shell名:
[root@alone skel]# chsh -s /bin/csh testChanging shell for test. Shell changed.
chfn
不加参数的时候会以此输入提示备注信息。如:“
[root@alone skel]# chfn testChanging finger information for test. Name []: ImaTest Office []: ChongQing Office Phone []: 88925925 Home Phone []: 88592626 Finger information changed. [root@alone skel]# tail -2 /etc/passwdrichy:x:500:500:richy:/home/richy:/bin/bashtest:x:501:501:ImaTest,ChongQing,88925925,88592626:/home/test:/bin/csh
chage
命令用来帮助管理用户账户的有效期,参数如下:
-d
设置上次修改密码到现在的天数
-E
设置密码过期的日期
-I
设置密码过期到锁定账户的天数
-m
设置修改密码之间最少要多少天
-W
设置密码过期前多久开始出现提醒信息
chage命令的日期格式可以用一下两种方式的一种:
YYYY-MM-DD格式的日期。
2.代表从1970年1月1日到该日期天数的数值。
技巧:可以通过设置账户的过期日期来创建临时用户。过期账户和锁定账户相似,账户仍然存在,但是无法登录。
[root@alone skel]# cat /etc/grouproot:x:0: bin:x:1:bin,daemon daemon:x:2:bin,daemon sys:x:3:bin,adm adm:x:4:adm,daemon tty:x:5: disk:x:6: lp:x:7:daemon mem:x:8: kmem:x:9:
/etc/group文件包含4个字段 组名:组密码:GID:该组的用户
-组密码允许非组内成员通过它临时成为该组的成员,但不常用。 -不能直接修改/etc/group文件来添加组,而要使用usermod命令来添加。添加用户到组时,需先创建组。
使用groupadd命令
[root@alone skel]# /usr/sbin/groupadd shared[root@alone skel]# tail /etc/groupfuse:x:494: stapusr:x:156: stapsys:x:157: stapdev:x:158: sshd:x:74: tcpdump:x:72: slocate:x:21: richy:x:500:test:x:501: shared:x:502:
创建组时,默认没有用户属于该组成员。groupadd命令没有提供将用户添加到组的选项,但可以使用usermod命令来添加用户到组:
[root@alone skel]# /usr/sbin/usermod -G shared richy[root@alone skel]# /usr/sbin/usermod -G shared test[root@alone skel]# tail -3 /etc/grouprichy:x:500:test:x:501: shared:x:502:richy,test
usermod的-G命令会把这个新组添加到该用户账户的组列表里。(组关系更改生效,必须注销重新登录)。注意:
如果是-g
参数,指定的组名会替换该账户的默认组。-G
参数则是将改组添加到用户的属组列表里,而不影响默认组。
groupmod 可以修改已有组的GID(加-g参数)或者组名(加-n参数):
[root@alone skel]# tail -2 /etc/grouptest:x:501: sharing:x:502:richy,test
修改组名时,GID和组成员不会变,只有组名变。由于所有的安全权限都是基于GID的,你可以随意改变组名而不会影响文件的安全性。
– 代表文件; d 代表目录; l 代表连接;c 代表字符型设备; b 代表块设备; n 代表网络设备;
umask 的使用,文件的全权限为 666 目录的全权限为 777 umask 0022说明: 第一位为特殊安全选项 第二位是属主权限 第三位是属组权限 第四位是其他用户权限 umask的值是掩码形式,他会屏蔽掉不需要的权限,若想文件为644(即rw-r–r–),文件的掩码就是022(666-644),
[root@alone testdir]# ls -ld /root/testdirdrwxr-xr-x. 2 root root 4096 7月 28 10:05 /root/testdir
(即是 0026)
由于目录默认权限时777,umask作用后生成的目录权限不同于生成的文件权限,umask值是026会从777中减去,留下来751作为目录权限设置。
[root@alone testdir]# chmod 760 newfile[root@alone testdir]# ls -l newfile-rwxrw----. 1 root root 0 7月 28 10:10 newfile
chmod的作用对象有 u(属主) g(属组) o(其他用户) a(所有) 。 chmod权限的增加(+)、移除(-)、重置为(=)。 chmod权限设置符号 x(赋予执行权限)、s(运行时重置UID或GID)、t(保留文件或目录)、u(权限设置为属主一样)、g(权限设置为属组一样)、o(权限设置为其他用户一样)。
[root@alone testdir]# chmod o+r newfile[root@alone testdir]# ll newfile-rwxrw-r--. 1 root root 0 7月 28 10:10 newfile [root@alone testdir]# chmod u-x newfile[root@alone testdir]# ll newfile-rw-rw-r--. 1 root root 0 7月 28 10:10 newfile
chmod
可以使用-R来递归的作用到文件和子目录,可以在指定文件名时使用通配符同事作用多个文件
chown options owner[.group] filename 例如: [root@alone testdir]# chown dan newfile[root@alone testdir]# ll newfile-rw-rw-r--. 1 dan root 0 7月 28 10:10 newfile [root@alone testdir]# chown dan.sharing newfile[root@alone testdir]# ll newfile-rw-rw-r--. 1 dan sharing 0 7月 28 10:10 newfile 不嫌麻烦可以用以下命令改变默认属组: [root@alone testdir]# chown .test newfile[root@alone testdir]# ll newfile-rw-rw-r--. 1 dan test 0 7月 28 10:10 newfile chown带-R参数加通配符可以递归的改变子目录和文件的所属关系,-h参数可以改变该文件的所有符号链接文件的所属关系。 chgrp命令更方便的改变文件或目录的默认数组: [root@alone testdir]# chgrp sharing newfile[root@alone testdir]# ll newfile-rw-rw-r--. 1 dan sharing 0 7月 28 10:10 newfile
5.共享文件
最基本的方法是通过创建组来共享访问权限的方法。 大环境中共享方法: -设置用户ID (SUID):当文件被用户使用时,会以文件属主权限运行。 -设置组ID(SGID):对文件来说,程序会以文件属组权限运行,对目录来说,目录中创建新文件会以目录的默认属组作为默认属组。 -粘着位:进程结束后文件还会在内存中 例子: [root@alone testdir]# mkdir sss[root@alone testdir]# ls -l总用量 4 -rw-r--r--. 1 root root 0 7月 28 10:26 abc -rw-rw-r--. 1 dan sharing 0 7月 28 10:10 newfile drwxr-xr-x. 2 root root 4096 7月 28 10:51 sss [root@alone testdir]# chgrp sharing sss[root@alone testdir]# chmod g+s sss[root@alone testdir]# ls -ld sssdrwxr-sr-x. 2 root sharing 4096 7月 28 10:51 sss [root@alone testdir]# umask 002[root@alone testdir]# cd sss[root@alone sss]# touch onetext[root@alone sss]# ls -l总用量 0 -rw-rw-r--. 1 root sharing 0 7月 28 10:53 onetext 首先,用mkdir创建共享的目录, 其次通过chgrp将默认属组改为含有需要共享用户的组, 最后将目录的SGID位置位,以保证目录中新建文件都用sharing作为默认组。 为了让这个环境正常工作,所有组成员都需要把它们的umask值设置成文件对属组成员可写(002)。 这样,组成员就能共享目录下创建文件,并且新文件沿用目录的属组,而不是用户的属组, 所有sharing组的用户都有访问权限。
“Linux的shadow文件有什么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。