详解Linux-shadow文件 (详解linux中搭建常用服务器)

教程大全 2025-07-16 12:40:25 浏览

在linux中,口令文件在/etc/passwd中,早期的这个文件直接存放加密后的密码,前两位是”盐”值,是一个随机数,后面跟的是加密的密码。为了安全,现在的linux都提供了 /etc/shADOw这个影子文件,密码放在这个文件里面,并且是只有root可读的。

richy:/ZJCRI/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 ==>新用户会被添加到GID为100的公共组 HOME=/home ==>新用户的HOME目录将位于/home/账户名 INACTIVE=-1 ==>新用户账户密码在过期后不会被禁用==>新用户账户未被设置为某个日期后就过期 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 更改用户从密码过期到账户被禁用的天数更改默认的组名或GID更改默认的登录shell 例子:

[root@aloneskel][root@aloneskel]GROUP=100HOME=/homeINACTIVE=-1EXPIRE=SHELL=/bin/tschSKEL=/etc/skelCREATE_MAIL_SPOOL=yes

userdel只删除/etc/passwd文件中的用户信息,而不会删除系统中属于该账户的任何文件。 如果加上-r参数,userdel 会删除用户的HOME目录及mail目录。然而系统上仍可能存有该用户的其他文件,可能会造成一些问题。 加上-r参数的例子:

[root@aloneskel][root@aloneskel]ls:无法访问/home/tes:没有那个文件或目录

usermod 能用来修改/etc/passwd文件中的大部分字段,只需用相应的参数就行。参数大部分跟useradd命令一样,比如用来修改过期日期,修改默认的登录组:修改用户账户的登录名锁定账户,这样用户就无法登录了修改账户的密码解除锁定,解除后用户能正常登录 以上参数尤其适用,用这个参数就能锁定账户,用户就无法登录,而不用删除账户和用户的数据,要让账户恢复正常,只要加参数就行。

改变用户的密码最简单就是用命令: [root@alone skel]# passwd test 更改用户 test 的密码 。 新的 密码: 无效的密码: 它基于字典单词 无效的密码: 过于简单 重新输入新的 密码: passwd: 所有的身份验证令牌已经成功更新。

-e`选项能强制用户下次登录时修改密码;如果需要为系统中大量用户来修改密码,chpasswd命令能让事情简单许多,chpasswd命令能从标准输入自动读取登录名和密码对(冒号分隔)列表,给密码加密,然后为用户账户设置,也可以用重定向命令来将含有`userid:passwd`对的文件重定向给命令:`[root@aloneskel]

chsh、chfn和chage工具专门用来修改特定账户信息。chsh命令用来快速修改默认的用户登录shell。使用时必须用shell的全路径名作为参数,不能只用shell名:

[root@aloneskel]Changingshell.Shellchanged.

不加参数的时候会以此输入提示备注信息。如:“

[root@aloneskel]Changingfingerinformation.Name[]:ImaTestOffice[]:ChongQingOfficePhone[]:88925925HomePhone[]:88592626Fingerinformationchanged.[root@aloneskel]richy:x:500:500:richy:/home/richy:/bin/bash:x:501:501:ImaTest,ChongQing,88925925,88592626:/home/:/bin/csh

命令用来帮助管理用户账户的有效期,参数如下:设置上次修改密码到现在的天数设置密码过期的日期设置密码过期到锁定账户的天数设置修改密码之间最少要多少天设置密码过期前多久开始出现提醒信息 chage命令的日期格式可以用一下两种方式的一种: 1.YYYY-MM-DD格式的日期。 2.代表从1970年1月1日到该日期天数的数值。 技巧:可以通过设置账户的过期日期来创建临时用户。过期账户和锁定账户相似,账户仍然存在,但是无法登录。

[root@aloneskel]root:x:0:bin:x:1:bin,daemondaemon:x:2:bin,daemonsys:x:3:bin,admadm:x:4:adm,daemontty:x:5:disk:x:6:lp:x:7:daemonmem:x:8:kmem:x:9:

/etc/group文件包含4个字段 组名:组密码:GID:该组的用户 -组密码允许非组内成员通过它临时成为该组的成员,但不常用。 -不能直接修改/etc/group文件来添加组,而要使用usermod命令来添加。添加用户到组时,需先创建组。

使用groupadd命令

[root@aloneskel][root@aloneskel]fuse:x:494:stapusr:x:156:stapsys:x:157:stapdev:x:158:sshd:x:74:tcpdump:x:72:slocate:x:21:richy:x:500::x:501:shared:x:502:

创建组时,默认没有用户属于该组成员。groupadd命令没有提供将用户添加到组的选项,但可以使用usermod命令来添加用户到组:

详解Linux
[root@aloneskel][root@aloneskel][root@aloneskel]richy:x:500::x:501:shared:x:502:richy,

usermod的-G命令会把这个新组添加到该用户账户的组列表里。(组关系更改生效,必须注销重新登录)。 注意: 如果是参数,指定的组名会替换该账户的默认组。参数则是将改组添加到用户的属组列表里,而不影响默认组。

groupmod 可以修改已有组的GID(加-g参数)或者组名(加-n参数):

[root@aloneskel]:x:501:sharing:x:502:richy,

修改组名时,GID和组成员不会变,只有组名变。由于所有的安全权限都是基于GID的,你可以随意改变组名而不会影响文件的安全性

– 代表文件; d 代表目录; l 代表连接;c 代表字符型设备; b 代表块设备; n 代表网络设备;

umask 的使用,文件的全权限为 666 目录的全权限为 777 umask 0022说明: 第一位为特殊安全选项 第二位是属主权限 第三位是属组权限 第四位是其他用户权限 umask的值是掩码形式,他会屏蔽掉不需要的权限,若想文件为644(即rw-r–r–),文件的掩码就是022(666-644),

[root@alonetestdir]drwxr-xr-x.2rootroot40967月2810:05/root/testdir

(即是 0026) 由于目录默认权限时777,umask作用后生成的目录权限不同于生成的文件权限,umask值是026会从777中减去,留下来751作为目录权限设置。

[root@alonetestdir][root@alonetestdir]-rwxrw----.1rootroot07月2810:10newfile

chmod的作用对象有 u(属主) g(属组) o(其他用户) a(所有) 。 chmod权限的增加(+)、移除(-)、重置为(=)。 chmod权限设置符号 x(赋予执行权限)、s(运行时重置UID或GID)、t(保留文件或目录)、u(权限设置为属主一样)、g(权限设置为属组一样)、o(权限设置为其他用户一样)。

[root@alonetestdir][root@alonetestdir]-rwxrw-r--.1rootroot07月2810:10newfile[root@alonetestdir][root@alonetestdir]-rw-rw-r--.1rootroot07月2810:10newfile

可以使用-R来递归的作用到文件和子目录,可以在指定文件名时使用通配符同事作用多个文件

chownoptionsowner[.group]filename例如:[root@alonetestdir][root@alonetestdir]-rw-rw-r--.1danroot07月2810:10newfile[root@alonetestdir][root@alonetestdir]-rw-rw-r--.1dansharing07月2810:10newfile不嫌麻烦可以用以下命令改变默认属组:[root@alonetestdir][root@alonetestdir]-rw-rw-r--.1dan07月2810:10newfilechown带-R参数加通配符可以递归的改变子目录和文件的所属关系,-h参数可以改变该文件的所有符号链接文件的所属关系。chgrp命令更方便的改变文件或目录的默认数组:[root@alonetestdir][root@alonetestdir]-rw-rw-r--.1dansharing07月2810:10newfile

5.共享文件

最基本的方法是通过创建组来共享访问权限的方法。大环境中共享方法:-设置用户ID(SUID):当文件被用户使用时,会以文件属主权限运行。-设置组ID(SGID):对文件来说,程序会以文件属组权限运行,对目录来说,目录中创建新文件会以目录的默认属组作为默认属组。-粘着位:进程结束后文件还会在内存中例子:[root@alonetestdir][root@alonetestdir]总用量4-rw-r--r--.1rootroot07月2810:26abc-rw-rw-r--.1dansharing07月2810:10newfiledrwxr-xr-x.2rootroot40967月2810:51sss[root@alonetestdir][root@alonetestdir][root@alonetestdir]drwxr-sr-x.2rootsharing40967月2810:51sss[root@alonetestdir][root@alonetestdir][root@alonesss][root@alonesss]总用量0-rw-rw-r--.1rootsharing07月2810:53onetext首先,用mkdir创建共享的目录,其次通过chgrp将默认属组改为含有需要共享用户的组,最后将目录的SGID位置位,以保证目录中新建文件都用sharing作为默认组。为了让这个环境正常工作,所有组成员都需要把它们的值设置成文件对属组成员可写(002)。这样,组成员就能共享目录下创建文件,并且新文件沿用目录的属组,而不是用户的属组,所有sharing组的用户都有访问权限。

账户信息 /etc/passwd 组信息 /etc/group 创建新用户 useradd 创建新组 groupadd 修改已有账户 usermod 修改组账户信息 groupmod 3个安全等级 rwxr–r– 默认权限设置 umask (掩码规则-文件666,目录777) chmod 修改文件或目录的安全设置(只有文件的属主才能修改属主和属组,或者root用户) SGID强制某个目录下创建的新文件或目录都沿用该父目录的属组(共享简便方法)。


如何开启windows10下的linux系统

linux命令是对Linux系统进行管理的命令。 对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。 linux命令在系统中有两种类型:内置Shell命令和Linux命令。 以下是win10中使用linux命令的方法:1首先,点击屏幕左下角的Win图标,然后在弹出的菜单中选择“所有应用”。 2在所有应用中找到并展开 Windows PowerShell 文件夹,启动其下的 Windows PowerShell。 3这时,将会打开一个命令行窗口。 然后,请稍微等待一会,直到出现 PowerShell 命令提示符为止。 4这时,便可以输入 Linux 命令了。 例如,输入一个 Linux 文件查看命令 ls,回车,便可以列出当前目录下的文件和文件夹列表。 注意事项Windows PowerShell 支持绝大部分 Linux 内置命令,但有些命令例外。 具体来说有:1)命令简写(或称命令别名)例如,不支持 Linux 下的文件查看命令 ll 。 该命令作用为以详细信息方式查看当前目录下文件,它实质是 ls -l 命令的简写。 2)需要调用 linux 系统中的程序才能执行的命令,如 vim由于 Windows 系统中并没有内置 vim 程序,故而与 vim 有关的命令无法启用。 3)帮助命令在 Linux 系统中,如果要知道某条命令的用法,可以使用帮助命令了。 但在 Windows 中,默认是没有安装Linux中的帮助命令的。 如果想使用该命令,可以联网安装或在线查看。 模式切换1、 由图形到字符#logout或init 32、由字符到图形界面init 53、退出consolelogout或exit或ctrl+d4、 注销Ctrl + Alt + Backspace5、 关机#poweroff或init 0或shutdown -h now或 halt -p6、 重启#reboot或init 6或shutdown -r now

linux如何从一个组中将一个用户删除

Linux删除用户组和用户时常用的一些命令和参数。 1、从组中删除用户编辑/etc/group 找到GROUP1那一行,删除 A或者用命令gpasswd -d A GROUP2、建用户:adduser phpq //新建phpq用户passwd phpq //给phpq用户设置密码3、建工作组groupadd test//新建test工作组4、新建用户同时增加工作组useradd -g test phpq//新建phpq用户并增加到test工作组注::-g 所属组 -d 家目录 -s 所用的SHELL5、给已有的用户增加工作组usermod -G groupname username或者:gpasswd -a user group6、临时关闭:在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上*就可以了。 想恢复该用户,去掉*即可。 或者使用如下命令关闭用户账号:passwd peter –l重新释放:passwd peter –u6、永久性删除用户账号userdel petergroupdel peterusermod –G peter peter (强制删除该用户的主目录和主目录下的所有文件和子目录)7、显示用户信息id usercat /etc/passwd

linux /etc的权限 设置

我来给你说说吧。 首先,一个文件有3个属性,LINUX规定,r为4,w为2,x为1,那么,chmod 777 /etc 的意思就是,etc目录,的自己,所在组,别人都是可读可写,可执行。 也就是你这么个情况。 所以,想改变属性,就chmod xxx /etc就可以了。 那么,如果你想把下面的所有目录都改的话,就是chmod -R XXX /etc 就可以了。 -R的意思是持续更改,将目录下所有的文件、目录都一同更改。 我现在的电脑没有LINUX系统,全靠学的,应该没有错,你可以试试

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐