怎样建立公司的网站,网站几个页面,移动端模板网站建设价格,51link友链一、 /etc/sudoers
/etc/sudoers用于管理 Linux 系统上特权操作的访问控制列表#xff08;ACL#xff09;。该文件指定了哪些用户、组或主机可以执行特权命令#xff0c;以及他们可以执行哪些命令。
# sudoers file.
#
# This file MUST be edited with the visudo comman…一、 /etc/sudoers
/etc/sudoers用于管理 Linux 系统上特权操作的访问控制列表ACL。该文件指定了哪些用户、组或主机可以执行特权命令以及他们可以执行哪些命令。
# sudoers file.
#
# This file MUST be edited with the visudo command as root.
#
# See the man page for the details on how to write a sudoers file.
## Override builtin defaults
Defaults syslogauth,timestamp_timeout300,!set_logname
Defaults:admin lecturealways
Defaults:admin lecture_file/etc/sudoers.lecture
Defaults:admin passwd_timeout0.5
Defaults:hwnoc !requiretty# Host alias specification# Cmnd alias specification
Cmnd_Alias SHELLS /bin/sh,/bin/ash,/bin/bsh,/bin/bash,/bin/csh, \/bin/ksh,/bin/rsh,/bin/tcsh,/bin/zsh
Cmnd_Alias VIETC /usr/sbin/visudo,/usr/sbin/vipw,/usr/sbin/vigr
Cmnd_Alias USERADD /usr/sbin/useradd,/usr/sbin/adduser
Cmnd_Alias SUPERMIT !/usr/bin/sudo *,!/bin/su *,/bin/su -c*,/bin/su [a-zA-Z0-9]*,!/bin/su *root*
Cmnd_Alias SUDOEXEC /bin/sh [/~.a-zA-z0-9]*, /bin/sh -c*, \/bin/ash [/~.a-zA-z0-9]*, /bin/ash -c*, \/bin/bsh [/~.a-zA-z0-9]*, /bin/bsh -c*, \/bin/bash [/~.a-zA-z0-9]*, /bin/bash -c*, \/bin/csh [/~.a-zA-z0-9]*, /bin/csh -c*, \/bin/ksh [/~.a-zA-z0-9]*, /bin/ksh -c*, \/bin/rsh [/~.a-zA-z0-9]*, /bin/rsh -c*, \/bin/tcsh [/~.a-zA-z0-9]*, /bin/tcsh -c*, \/bin/zsh [/~.a-zA-z0-9]*, /bin/zsh -c*## settings from ali local# default
%users ALL(users) ALL
root ALL(ALL) ALLCmnd_Alias WHITELIST1 /bin/grep
mysql ALL(ALL) NOPASSWD:WHITELIST1Cmnd_Alias WHITELIST2 /usr/bin/crontab -l -u admin,/usr/bin/crontab -u admin -l
guest ALL(ALL) NOPASSWD:WHITELIST2appadmin ALL(ALL) NOPASSWD:ALL,SUPERMIT,!SHELLS,SUDOEXEC,!VIETC,!USERADD%tbops ALL(ALL) ALL,SUPERMIT,!SHELLS,SUDOEXEC%tbpe ALL(ALL) ALL,SUPERMIT,!SHELLS,SUDOEXEC,!VIETC%tbdba ALL(ALL) ALL,SUPERMIT,!SHELLS,SUDOEXEC,!VIETC%tbnoc ALL(ALL) ALL,SUPERMIT,!SHELLS,SUDOEXEC,!VIETC,!USERADD%tbscm ALL(ALL) ALL,SUPERMIT,!SHELLS,SUDOEXEC,!VIETC,!USERADD%tbdev ALL(ALL) ALL,SUPERMIT,!SHELLS,SUDOEXEC,!VIETC,!USERADD%tbtest ALL(ALL) ALL,SUPERMIT,!SHELLS,SUDOEXEC,!VIETC,!USERADD# Compatible with the /home/staragent/plugins/osteam.src/osteam.cur/account.sh
Cmnd_Alias ALINOC_CMD /usr/bin/kill,/usr/sbin/shutdown,/usr/sbin/halt,/usr/sbin/reboot,/bin/sh,/bin/ash,/bin/bsh,/bin/bash,/bin/csh,/bin/ksh,/bin/rsh,/bin/tcsh,/bin/zsh,/usr/bin/passwd,/usr/bin/chsh,/usr/bin/chfn,/usr/bin/su,/bin/su,/usr/sbin/su,/usr/sbin/visudo,/usr/sbin/vipw,/usr/sbin/vigr,/usr/sbin/useradd,/usr/sbin/adduser,/user/sbin/userdel,/user/sbin/usermod,/user/sbin/userpasswd,/user/sbin/groupadd,/user/sbin/groupdel,/user/sbin/groupmod,/usr/bin/sudo*,/bin/su*,/bin/su [a-zA-Z0-9]*,/bin/su *root*,/bin/chmod,/bin/chown,/bin/chattr,/bin/rm,/bin/rmdir,/sbin/rmmod,/sbin/insmod
hwnoc ALL(ALL) NOPASSWD:ALL,SUPERMIT,!VIETC,!USERADD,!ALINOC_CMDadmin ALL(ALL) NOPASSWD:ALL,SUPERMIT,!VIETC,!USERADD%admin ALL(ALL) NOPASSWD:ALL,SUPERMIT,!VIETC,!USERADD
1.1、Defaults
定义默认信息包括默认的用户、默认的命令、默认的主机等。
格式Defaults parametervalue如文件中的Defaults syslogauth,timestamp_timeout300,!set_logname这条规则意味着当用户使用 sudo 命令时sudo 命令的执行信息将被记录到系统的安全日志中并且超时时间为 5 分钟而且不会记录当前用户的登录名信息。
syslog指定日志级别和设备这里的 auth 表示将 sudo 命令的执行信息记录在系统的安全日志中。timestamp_timeout指定 sudo 命令的超时时间这里是 300 秒也就是 5 分钟。!set_logname表示禁用记录当前用户的登录名信息。
格式Defaults:admin parametervalue
# 针对admin用户设置Defaults:admin lecturealways
Defaults:admin lecture_file/etc/sudoers.lecture
Defaults:admin passwd_timeout0.5lecture指定 sudo 命令的提示信息这里是 always表示每次使用 sudo 命令时都会提示用户一条信息。
lecture_file指定 sudo 命令的提示信息来源这里是 /etc/sudoers.lecture表示提示信息将从该文件中读取。
passwd_timeout指定密码的超时时间这里是 0.5表示在输入密码后 0.5 秒内必须使用 sudo 命令否则需要重新输入密码。# 意味着当名为 admin 的用户使用 sudo 命令时每次都会收到一条来自 /etc/sudoers.lecture 文件的提示信息提醒用户操作的风险和注意事项。另外用户必须在输入密码后 0.5 秒内使用 sudo 命令否则需要重新输入密码。Defaults:hwnoc !requiretty
!requiretty表示不要求用户在 tty 控制台上使用 sudo 命令。# 通常情况下sudo 命令要求用户必须在 tty 控制台上输入密码这样可以确保用户是在本地执行命令而不是在远程机器上执行。然而在某些情况下用户可能需要在无 tty 的情况下使用 sudo 命令如通过 ssh 等远程连接执行命令。这时就需要通过 !requiretty 参数来禁用 tty 控制台的要求。因此这条规则意味着当名为 hwnoc 的用户使用 sudo 命令时不需要在 tty 控制台上输入密码。1.2、Cmnd_Alias
定义命令别名将一个或多个命令映射到一个别名。
格式Cmnd_Alias aliasnamecommand1,command2,...与此类似的还有 User_Alias定义用户别名将一个或多个用户映射到一个别名。 Runas_Alias定义运行用户别名将一个或多个运行用户映射到一个别名。 Host_Alias定义主机别名将一个或多个主机映射到一个别名。
1.3、对用户及用户组权限限制
admin ALL(ALL) NOPASSWD:ALL,SUPERMIT,!VIETC,!USERADD
解释
admin指定用户名为 admin。ALL指定所有主机都适用该规则。(ALL)指定使用任何用户身份执行命令。NOPASSWD:ALL表示在执行 sudo 命令时不需要输入密码。SUPERMIT指定 SUPERMIT 命令别名可以在执行 sudo 命令时调用。!VIETC表示不允许执行 VIETC 命令别名。!USERADD表示不允许执行 USERADD 命令别名。
因此这条规则意味着用户 admin 在所有主机上可以使用 sudo 命令以任何用户身份执行任何命令而且不需要输入密码。此外用户 admin 可以使用 SUPERMIT 命令别名但是不能使用 VIETC 和 USERADD 命令别名以保证系统的安全性和稳定性。
%tbops ALL(ALL) ALL,SUPERMIT,!SHELLS,SUDOEXEC这条规则意味着 tbops 用户组中的用户可以在所有主机上使用 sudo 命令以任何用户身份执行任何命令同时也可以使用 SUPERMIT 命令别名和 SUDOEXEC 命令别名。但是用户不允许执行 SHELLS 命令别名以保证系统的安全性和稳定性。
二、 /etc/passwd
/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格式为
用户名:密码:用户标识号:组标识号:注释性描述:主目录:登录 Shell具体解释如下表
字段解释用户名代表用户账户的字符串通常长度不超过 8 个字符并且由大小写字母和/或数字组成密码存放着加密后的用户密码字但是由于安全隐患现在多数 Linux 系统使用 shadow 技术将真正的加密后的用户密码字存放到 /etc/shadow 文件中UID一个整数系统内部用它来标识用户。一般情况下它与用户名是一一对应的。GID记录用户所属的用户组。它对应着 /etc/group 文件中的一条记录。用户信息记录着用户的一些个人情况例如用户的真实姓名、电话、地址等这个字段并没有什么实际的用途。用户主目录用户的起始工作目录即用户在登录到系统之后所处的目录。登录shell用户登录后启动的进程也就是用户与 Linux 系统之间的接口。
密码字段x和 *的区别
x表示用户密码已经被加密实际密码存储在 /etc/shadow 文件中。
*表示密码字段为空也就是用户无法通过密码登录比如系统用户或者没有密码的用户各种 /etc/passwd 之间的区别
文件名介绍/etc/passwd这是最常见的 /etc/passwd 文件用于存储所有用户账户的信息包括用户名、UID、GID、密码、用户信息、主目录和默认 shell 程序等。/etc/passwd-这是 /etc/passwd 文件的备份文件通常在管理员对 /etc/passwd 文件进行修改时系统会自动创建该备份文件。/etc/passwd这是一些 Linux 发行版如 Gentoo使用的 /etc/passwd 文件与普通 /etc/passwd 文件的格式略有不同一般包括用户名、UID、GID、用户信息和主目录等。/etc/passwd.org这是一些 Linux 发行版如 Debian的 /etc/passwd 文件备份通常备份的时间点与系统安装时的 /etc/passwd 文件相同。/etc/passwd-这是 AIX 操作系统中的 /etc/passwd 文件与普通的 /etc/passwd 文件的格式略有不同一般包括用户名、UID、GID、用户信息、主目录、默认 shell 程序和账号过期时间等。
管理/etc/passwd 文件命令
useradd 创建用户useradd-test并设置密码为123并同时创建一个与用户名相同的用户组作为用户的主组
useradd -p 123 -U useradd-test$ cat /etc/passwd | grep useradd-test
useradd-test:x:1000:1000::/home/useradd-test:/bin/bash$ cat /etc/shadow | grep useradd-test
useradd-test:123:19562:0:99999:7:::由上可知useradd 创建用户设置密码是明文的无法加密加密需要使用passwd命令
passwd 修改用户密码
$ sudo passwd useradd-test
Changing password for user useradd-test.
New password:
BAD PASSWORD: The password fails the dictionary check - it is based on a dictionary word
Retype new password:
passwd: all authentication tokens updated successfully.cat /etc/shadow | grep useradd-test
useradd-test:$6$k.sul8dF$pgZaR8zG1BYjIp9vTemeROXhA2npYLqUfblpZnCgChyVtr4yi9QZSyMLOtqyH85b2ONXeMK.RJU1awlDEUMww/:19562:0:99999:7:::usermod 修改属性
$ usermod -c useradd test useradd-test$ cat /etc/passwd | grep useradd-test
useradd-test:x:1000:1000:useradd test:/home/useradd-test:/bin/bashusermod常见参数
参数命令含义-lusermod -l newname oldname修改用户的用户名其中 newname 是新的用户名oldname 是旧的用户名。-cusermod -c User Info username修改用户的用户信息其中 “User Info” 是用户信息username 是要修改信息的用户名。-gusermod -g groupname username修改用户所属的主组其中 groupname 是要更改的用户组名username 是要修改的用户名。-Gusermod -G group1,group2 username将用户添加到多个用户组中其中 group1、group2 是要添加的用户组username 是要修改的用户名。-susermod -s /bin/bash username修改用户的默认 shell 程序其中 /bin/bash 是新的 shell 程序username 是要修改的用户名。-dusermod -d /home/newhome username修改用户的主目录其中 /home/newhome 是新的主目录username 是要修改的用户名。-eusermod -e 2022-12-31 username修改用户账号的过期时间其中 2022 年 12 月 31 日是账号过期的日期username 是要修改的用户名。-pusermod -p password username修改用户的密码其中 password 是新的密码username 是要修改密码的用户名。需要注意的是这种方式无法对密码进行加密因此不太安全建议使用 passwd 命令来设置密码。-uusermod -u uid username修改用户的 UID其中 uid 是新的用户 IDusername 是要修改的用户名。
userdel删除账号
userdel useradd-test三、 /etc/shadow
/etc/shadow 目录是用于存储用户密码信息的文件目录也被称为“影子文件”。该目录只有root用户拥有读权限其他用户不能直接查看或修改该目录下的文件。 格式如下
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段具体解释
字段含义用户名Username该字段指定了用户的登录名。加密的密码Password该字段存储了用户的密码使用加密算法进行加密。最近一次修改密码的时间Last change该字段指定了密码上次被修改的时间表示距离 1970 年 1 月 1 日的天数。最小密码生存期Minimum days该字段指定了密码修改后必须经过多少天才能再次修改密码。最大密码生存期Maximum days该字段指定了密码的有效期表示密码自上次修改后可以保持多长时间。密码过期警告时间Warning days该字段指定了在密码过期前提醒用户的天数。帐号失效时间Inactive days该字段指定了多少天用户没有登录系统后帐号会被自动失效。帐号失效日期Account expiration该字段指定了帐号的终止日期表示距离 1970 年 1 月 1 日的天数。
/etc/shadow 中* 和!!区别
在 /etc/shadow 文件中两个特殊字符 * 和 !! 都表示该用户账户无法登录系统但它们之间有一些细微的区别。 *如果 /etc/shadow 文件中的密码字段为 *则表示该用户账户已被锁定无法使用密码进行登录。这种情况通常是由于管理员手动锁定用户账户导致的。 !!如果 /etc/shadow 文件中的密码字段为 !!则表示该用户账户已被禁用无法使用密码进行登录。这种情况通常是由于系统自动禁用用户账户例如密码过期或用户长时间未登录系统等。
需要注意的是无论是 * 还是 !!都表示该用户账户无法登录系统但它们之间的区别在于* 表示用户账户是被管理员手动锁定的而 !! 则表示用户账户是被系统自动禁用的。在实际使用中管理员需要根据实际情况进行相应的处理以确保系统的安全性和稳定性。