📄 53.html
字号:
<br>
<br>
cp xlock /usr/X11R6/bin/<br>
cp XLock /var/X11R6/lib/app-defaults/<br>
chown root.shadow /usr/X11R6/bin/xlock<br>
chmod 2755 /usr/X11R6/bin/xlock<br>
chown root.shadow /etc/shadow<br>
chmod 640 /etc/shadow<br>
<br>
<br>
你的 xlock 将可以正确的运作罗!<br>
<br>
<br>
6.6 xdm<br>
xdm 是一个可以表示在 X-Windows 签入画面的程式。某些系统开始 xdm 当系统被告知道一个特定的执行水准(参考 /etc/inittab)。<br>
<br>
<br>
伴随著 Shadow Suite 安装, xdm 需要被更新。很幸运的这也很容易可以更新你的 xdm 程式。<br>
<br>
xdm.tar.gz 可以从下列网址获得: ftp://sunsite.unc.edu/pub/linux/X11/xutils/xdm.tar.gz<br>
<br>
撷取 xdm.tar.gz 档并将它放在 /usr/src目录然後解压缩:<br>
<br>
tar -xzvf xdm.tar.gz<br>
<br>
编辑这个档: /usr/X11R6/lib/X11/config/linux.cf,且改变<br>
<br>
#define HasShadowPasswd NO<br>
<br>
这一行到:<br>
<br>
#define HasShadowPasswd YES<br>
<br>
然後建立可执行档:<br>
<br>
cd /usr/src/xdm<br>
xmkmf<br>
make depend<br>
make<br>
<br>
然後搬移所有档案正确目录:<br>
<br>
cp xdm /usr/X11R6/bin/<br>
<br>
xdm 以 root 权限在执行,所以你不需要改变档案存取权限。<br>
<br>
6.7 sudo<br>
sudo 程式允许系统管理员让使用者可以以 root 权限正常的执行程式。这是非常方便的因为它可以限制管理者执行 root 帐号本身权限,还可以允许使用者作像 mounte drives 的事情。<br>
<br>
sudo 需要读取密码因为在执行时需确认使用者密码。 sudo 已经执行 SUID root,所以存取 /etc/shadow 党不是问题。<br>
<br>
sudo 支援 shadow suite 可在下列网址取得: ftp://sunsite.unc.edu/pub/linux/system/Admin/sudo-1.2-shadow.tgz<br>
<br>
警告:当你安装 sudo 你的 /etc/sudoers 档将取代预设值,所以你需要备份原始程式。如果你有家任何设定在预设程式,你可能要编辑 Makefile 且移除复制该档到 /etc 的这行。<br>
<br>
<br>
该套件已经对 shadow 进行设定,所以只要重新编译该套件即可 (把它放在 /usr/src 目录):<br>
<br>
cd /usr/src<br>
tar -xzvf sudo-1.2-shadow.tgz<br>
cd sudo-1.2-shadow<br>
make all<br>
make install<br>
<br>
<br>
6.8 imapd (E-Mail [pine package])<br>
imapd 是一个像 pop3d 的 email server。 imapd 随著 Pine E-mail 套件发生。 其操作手册在介绍该套件时即包含 shadow 支援。然而,我发现这不全然正确。 再加上在编译时加上 libshadow.a 函式库和该套件结合 build script / Makefile 是非常不容易的。所以对 imapd 加入 shadow 支援是不太可能的。<br>
<br>
<br>
如果有任何答案,可以 Email 给我,我会将该解答放到这里。<br>
<br>
<br>
6.9 pppd (Point-to-Point Protocol Server)<br>
pppd server 可以使用几种权限设定: Password Authentication Protocol (PAP) 和 Cryptographic Handshake Authentication Protocol (CHAP)。 pppd server 从 /etc/ppp/chap-secrets 和/或 /etc/ppp/pap-secrets 档读取密码字串。如果你正使用预设 pppd 的执行,就没有必要再重新安装 pppd 。<br>
<br>
pppd 以允许你使用 login 参数。 如果 login 选项被选取, pppd 将使用 /etc/passwd 档的帐号密码给 PAP. 当然在不久密码档会是 shadowedm。pppd-1.2.1d 档已经加入对 shadow 的支援。<br>
<br>
<br>
下一节加入支援 shadow 的□例是针对 pppd-1.2.1d (一个较老版本的 pppd).<br>
<br>
pppd-2.2.0 版就已经包括 shadow 支援罗。<br>
<br>
7. 将 Shadow Suite 放进来使用<br>
<br>
这节描述你需要知道有些程式在安装时就已经有 Shadow Suite。大部分的资讯在操作手册可以找到。<br>
<br>
7.1 新增、修改和删除使用者<br>
Shadow Suite 新增下列指令用来新增、修改和删除使用者。 这也是可以安装 adduser 程式。<br>
<br>
useradd<br>
useradd 使令可用在系统中新增使用者。 你也可以采用此指令来改变预设字串。<br>
<br>
你应该做的第一件事是检查预设值设定和针对你的系统进行改变:<br>
<br>
useradd -D<br>
<br>
GROUP=1<br>
HOME=/home<br>
INACTIVE=0<br>
EXPIRE=0<br>
SHELL=<br>
SKEL=/etc/skel<br>
<br>
预设值不全是你要的,所以如果你开始新增使用者,你必须详阅每个使用者资讯。而且,我们可能和应该改变设定值。<br>
<br>
在我的系统上:<br>
<br>
我要预设群组是 100<br>
我要密码每到 60 天就到期<br>
我不要锁住帐号因为密码会到期<br>
我要预设 shell 是 /bin/bash<br>
为了这些改变,我要使用:<br>
useradd -D -g100 -e60 -f0 -s/bin/bash<br>
<br>
现在执行 useradd -D 将得到:<br>
<br>
GROUP=100<br>
HOME=/home<br>
INACTIVE=0<br>
EXPIRE=60<br>
SHELL=/bin/bash<br>
SKEL=/etc/skel<br>
<br>
尽管依照你需要修改,预设值将存在 /etc/default/useradd.<br>
<br>
先在你可以使用 useradd 来新增系统使用者。举例说明,新增一使用者 fred 使用预设值方式如下:<br>
<br>
useradd -m -c "Fred Flintstone" fred<br>
<br>
这将在 /etc/passwd 档中的一行建立如下:<br>
<br>
fred:*:505:100:Fred Flintstone:/home/fred:/bin/bash<br>
<br>
且在 /etc/shadow 档中的一行建立如下;<br>
fred:!:0:0:60:0:0:0:0<br>
<br>
fred的根目录将被建立且 /etc/skel 的内容将被复制因为指令句中有 -m 设定。<br>
因为我们并未详述 UID,系统会直接寻找下一个可获得的编号。<br>
<br>
fred的帐号被建立罗,但是 fred 仍然不能签入直到我们不再锁住(unlock)这个帐号。透过更改密码完成 unlock 帐号,方法如下:<br>
<br>
<br>
passwd fred<br>
<br>
Changing password for fred□Enter the new password (minimum of 5 characters)<br>
Please use a combination of upper and lower case letters and numbers.<br>
New Password: *******<br>
Re-enter new password: *******<br>
现在 /etc/shadow 档将包含:<br>
fred:J0C.WDR1amIt6:9559:0:60:0:0:0:0<br>
<br>
且 fred 将可以签入和使用该系统。 useradd 和其他附带 Shadow Suite 比较好的地方是可以自动改变 /etc/passwd 和 /etc/shadow 。 所以如果你正在新增一个使用者,且另一个使用者正在更改密码,这两个操作都可以正确的执行。<br>
你使用提供的指令比直接存取 /etc/passwd 和 /etc/shadow 档还好。 如果你正编辑 /etc/shadow 档,且有个使用者在你编辑时要改变他的密码,然後你储存编辑结果,这个使用者的密码将会遗失掉。<br>
<br>
这里是使用 useradd 和 passwd 新增使用者的一些 interactive script :<br>
<br>
#!/bin/bash<br>
#<br>
# /sbin/newuser - A script to add users to the system using the Shadow<br>
# Suite's useradd and passwd commands.<br>
#<br>
# Written my Mike Jackson as an example for the linux<br>
# Shadow Password Howto. Permission to use and modify is expressly granted.<br>
#<br>
# This could be modified to show the defaults and allow modification similar<br>
# to the Slackware Adduser program. It could also be modified to disallow<br>
# stupid entries. (i.e. better error checking).<br>
#<br>
##<br>
# Defaults for the useradd command<br>
##<br>
GROUP=100 # Default Group<br>
HOME=/home # Home directory location (/home/username)<br>
SKEL=/etc/skel # Skeleton Directory<br>
INACTIVE=0 # Days after password expires to disable account (0=never)<br>
EXPIRE=60 # Days that a passwords lasts<br>
SHELL=/bin/bash # Default Shell (full path)<br>
##<br>
# Defaults for the passwd command<br>
##<br>
PASSMIN=0 # Days between password changes<br>
PASSWARN=14 # Days before password expires that a warning is given<br>
##<br>
# Ensure that root is running the script.<br>
##<br>
WHOAMI=`/usr/bin/whoami`<br>
if [ $WHOAMI != "root" ]; then<br>
echo "You must be root to add news users!"<br>
exit 1<br>
fi<br>
##<br>
# Ask for username and fullname.<br>
##<br>
echo ""<br>
echo -n "Username: "<br>
read USERNAME<br>
echo -n "Full name: "<br>
read FULLNAME<br>
#<br>
echo "Adding user: $USERNAME."<br>
#<br>
# Note that the "" around $FULLNAME is required because this field is<br>
# almost always going to contain at least on space, and without the "'s<br>
# the useradd command would think that you we moving on to the next<br>
# parameter when it reached the SPACE character.<br>
#<br>
/usr/sbin/useradd -c"$FULLNAME" -d$HOME/$USERNAME -e$EXPIRE <br>
-f$INACTIVE -g$GROUP -m -k$SKEL -s$SHELL $USERNAME<br>
##<br>
# Set password defaults<br>
##<br>
/bin/passwd -n $PASSMIN -w $PASSWARN $USERNAME >/dev/null 2>&1<br>
##<br>
# Let the passwd command actually ask for password (twice)<br>
##<br>
/bin/passwd $USERNAME<br>
##<br>
# Show what was done.<br>
##<br>
echo ""<br>
echo "Entry from /etc/passwd:"<br>
echo -n " "<br>
grep "$USERNAME:" /etc/passwd<br>
echo "Entry from /etc/shadow:"<br>
echo -n " "<br>
grep "$USERNAME:" /etc/shadow<br>
echo "Summary output of the passwd command:"<br>
echo -n " "<br>
passwd -S $USERNAME<br>
echo ""<br>
<br>
新增使用者是用 script 比直接编辑 /etc/passwd / /etc/shadow 档或使用像 Slackware 的 adduser 程式还要好。<br>
<br>
需要更多 useradd 资讯请参照线上操作手册。<br>
<br>
<br>
usermod<br>
usermod 程式是用在修改使用者资讯。它的参数使用和 useradd 程式类似。<br>
<br>
如果你要更新 fred 的 shell,你要作下列步骤:<br>
<br>
usermod -s /bin/tcsh fred<br>
<br>
现在 fred 的 /etc/passwd 档将变成:<br>
<br>
fred:*:505:100:Fred Flintstone:/home/fred:/bin/tcsh<br>
<br>
如果要使 fred 的帐号到期日为 09/15/97:<br>
usermod -e 09/15/97 fred<br>
<br>
现在 fred 在 /etc/shadow 的栏位变成:<br>
fred:J0C.WDR1amIt6:9559:0:60:0:0:10119:0<br>
<br>
需要更多 usermod 资讯请参照线上操作手册。<br>
<br>
<br>
userdel<br>
userdel 用在删除使用者,使用方法为:<br>
<br>
userdel -r username<br>
<br>
-r 参数可以将该使用者根目录全部移除。位在期待目录的档案则需手动移除。<br>
如果你只是要简单的锁住帐号而没有要删除它,建议你使用 passwd 指令。<br>
<br>
<br>
7.2 passwd 指令和 passwd 老化<br>
passwd 指令很明显使用在改变密码,除此之外,可由 root 使用在:<br>
<br>
Lock 和 unlock 帐号 (-l and -u)<br>
设定密码合法的最大天数 (-x)<br>
设定密码改变间的最小天数 (-n)<br>
设定密码到期的警告天数 (-w)<br>
设定在帐号未被锁死密码到期後的警告天数 (-i)<br>
允许查询帐号资讯 (-S)<br>
举例说明,如果要锁死 fred 帐号:<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -