📄 成为linux的主人.txt
字号:
groupmod [ -g gid [ -o ] ] [ -n new_group_name ] group_name
/etc/hosts : 这个档案记录著 IP address 至 hostname 的 mapping . 如我们想把
ccsun21.csie.nctu.edu.tw 取个别名叫 : oldstock
那我们就可以在这个档案里写如下的叙述 :
140.113.17.151 oldstock
如此一来 , 以後我们 telnet oldstock 就等於 telnet
140.113.17.151
在这个档案中 , 至少会有两列 , 一列为 loopback , 这是为了侦错目的
而设的 , 另一列为 local host , 就是你自己的机器 .
/etc/hosts.equiv : 在里面可以设定一些 remote machine , 而从这些 remote
machine 利用 rsh 或 rlogin 连回 local machine 的话
便不用输入密码
同样的东西也可以在 .rhosts 见到 . 比如说在 ccsun22.csie
.nctu.edu.tw 上你的 Home Directory 建一个 .rhosts 档 ,
里面的内容如下:
rebel.dorm10.nctu.edu.tw jhhsu
以後只要在 rebel.dorm10.nctu.edu.tw 上利用 rsh 或 rlogin 至
ccsun22.csie.nctu.edu.tw 的话 , 也不须要输入密码
rsh -l jhhsu ccsun22.csie.nctu.edu.tw <-- 不须密码
不过这东西最好不要乱设 , 以信得过的 hosts 为主 ,
才不会造成 security 上的困扰 .
/etc/hosts.deny : 设定那些 remote hosts 不可以使用 inetd
/etc/hosts.allow : 设定那些 remote hosts 可以使用 inetd
至於 inetd 有那些 service , 各位可以去看看 /etc/inetd.conf
从里面就可以很清楚的可以看得出来 .
假如你采取比较 close 作法的话 , 可以在 hosts.deny 中写
ALL:ALL
但是如此一来 , 只要不是从 localhost 来的 , 那大概都不必
玩了 , 所以 , 我们也要适时的在 hosts.allow 中加入可以
access 的 hosts , 如 :
ALL:140.113.17. <-- 只要从 140.113.17.X 都可以 access
ALL:140.113.4.
ALL:140.113.6.
/etc/hosts.lpd : 记录可 access printer 的 hosts . 假如一台 printer可被网路上
的许多台主机所共用, 那 printcap 这个档案必须得描述完整的网
路设定资讯. 在比较严密控制的情况下, 有两个条件必须符合首先,
local machine 必须在 remote machine 的 /etc/hosts.eqiuv 中,
或者, 在 remote machine 的 /etc/hosts.lpd 中被记载第二, 使
用者必须有 remote machine 的帐号.
/etc/inetd.pid : inetd process id
/etc/issue : 这个档案被记录著 login prompt 前所要 echo 的 message , 特别要注
意的是 /etc/rc.d/rc.S
下面的四行若没有 mark , 则每次开机 issue 及 motd 都会被改变
假如你要有自己的设定 , 下面一定都要 mark 起来如下 :
#echo > /etc/issue
#echo Welcome to Linux /bin/uname -a | /bin/cut -d\ -f3. >> /etc/issue
#echo >> /etc/issue
#echo "/bin/uname -a | /bin/cut -d\ -f1,3. (Posix)." > /etc/motd
/etc/klogd.pid : klogd process id
/etc/ld.so.conf : 记录一些 library 所在的目录
/etc/magic : 初看这个档案时 , 也许只能隐隐约约的看到 : 这个档案似乎是描述一些
档案的格式. 没错, 这个档案记载了许多档案格式的识别字串或方法那
这个档在那里会用的到呢? 各位有使用过 file 这个指令吗? file 这个
指令的命令格式为:
file [ -c ] [ -z ] [ -L ] [ -f namefile ] [ -m magicfile ] file
file 这个指令非常有趣, 它可以告诉你某一个档案的格式, 如它是一个
text 档, 或是一个 shell script 或 DOS 可执行档等...... 而 file
这个指令, 就是去参考 /etc/magic 这个资料库. 假如你知道某一档案
的识别字, 而原来 magic 这个资料库没有记录, 那你可以把识别方法加
到资料库中, 或乾脆建立自己的资料库算了.
/etc/motd : 这个档很简单 , 就是 message of the day 的意思 , 里面可以写一些
message , 而这些 message 会在 login shell 之前被显示出来 .
通常都是 system administrator 要告知 user 的一些讯息. 而关於每次
都会改变的问题, 在前面 /etc/issue时已提出过,记得 mark 起来就好.
/etc/mtab : 目前 mount 上来的 filesystems , 各位可使用 mount 这个指令来看看
这个档的变化 . 如我在 mount 3.5 inch 软碟A 前 , 我看到的 mtab
如下 :
/dev/hdb1 / ext2 rw 0 0
/dev/hda1 /mnt/dosc msdos rw 0 0
/dev/hda5 /mnt/dosd msdos rw 0 0
/dev/hda6 /mnt/dose msdos rw 0 0
none /proc proc rw 0 0
然而 , 当我以 mount -t msdos /dev/fd0H1440 /mnt/dosa 这个指令将
3.5 inch 软碟A 挂上来後 , mtab 变为像下面的情况 :
/dev/hdb1 / ext2 rw 0 0
/dev/hda1 /mnt/dosc msdos rw 0 0
/dev/hda5 /mnt/dosd msdos rw 0 0
/dev/hda6 /mnt/dose msdos rw 0 0
none /proc proc rw 0 0
/dev/fd0H1440 /mnt/dosa msdos rw 0 0 <-- 多了这列 !
所以 , 各位了解啦 ! /etc/mtab 就是记录目前 mount 的 filesystem
/etc/mtools : 这里面记录的 , 是给 /usr/bin/mtools 参考用的 parameter .
那 mtools 是什麽呢? 简而言之 , 就是一群操作 MSDOS 档案的命令
集合 , 可用的命令可多了 , 如下 :
mattrib - change MSDOS file attribute flags
mcd - change MSDOS directory
mcopy - copy MSDOS files to/from Unix
mdel - delete an MSDOS file
mdir - display an MSDOS directory
mformat - add an MSDOS filesystem to a low-level formatted diskette
mlabel - make an MSDOS volume label
mmd - make an MSDOS subdirectory
mrd - remove an MSDOS subdirectory
mread - low level read (copy) an MSDOS file to Unix
mren - rename an existing MSDOS file
mtype - display contents of an MSDOS file
mwrite - low level write (copy) a Unix file to MSDOS
这些都被 link 到 mtools
/etc/named.boot : 假如你要建立 name server 的话 , 那这个档就是你要修改的地方
详细的情况可以去看 named 的 manual 就知道了 .
/etc/named.pid : named process id
/etc/networks : 这个档与 hosts 有点像 , 都是在 boot 的时候会用到的东西 ,
在这里可以定义一个子网路与其 IP address 的资讯 .
/etc/nntpserver : 这个档案记录著 news server , 当我们使用 tin -r ( read news
remotely ) 时, 这个档案会被参考到, 或者若这个档案不存在的
话, 那环境变数 NNTPSERVER 所指定的 server 就会被当成要去取
得 news 的 server. 譬如说, 你要将 140.111.1.11 当成 news
server, 那 /etc/nntpserver 中就可写:
140.111.1.11
/etc/nologin : 你也许会感到奇怪 , 我的 /etc 这个 directory 下并没有这个档啊?
没错, 它平常是不存在的, 要是你看到这个档的话, 那表示系统大概
要 shutdown 了, 因为系统要 shutdown 了, 自然不希望有人又
login 进来, 所以在我们执行 shutdown 时, nologin 这个档会自动
的被 create, 里面放著 shutdown message. 实际上, 当我们在
login 时, 系统会去检查有没有这个档, 假如有的话, 那就会印出这
个档案中的 message, 然後不让你 login. nologin 也有可能是为了
某种理由被制造的, 比如说系统在 maintain 暂时不希望有人 login.
无论如何 nologin 若存在, 就不能 login.
/etc/passwd : 呵呵 , 这个档案可重要了 . 一个 system administrator 最初要学的
常常就是这个档案的内容! 这个档案记录著系统可以认得的 user, 当
然啦, 也包括一些非人的 login name, 但这是有特殊用途的. 档案内
容每列的格式如下:
Login Name:Encrypted Password:UID:GID:GCOS:Home Directory:Login Shell
(1)login name: 在 login name 方面 , 每个 login name 必须是唯一的 ,
而且不能超过 8 个字元, 一般说来, login name 虽然可以
大小写混合, 但平常的情况下都用小写. 顺便一提的是
/usr/lib/aliases 这个档案, 修改这个档案的内容可以使
mail 时用超过 8 个字元的档案. 如平常 mail
jhhsu@dorm10 .nctu.edu.tw 可变成 mail
Jin-Hwa-Sheu@dorm10.nctu.edu. tw.
(2)Encrypted Password: 这栏是编码过的密码 , 在新增一个 new user 时
应该在这栏填上 * , 更改 password 可用 passwd
这个指令 . passwd 这是一个 setuid 的指令 ,
关於 setuid , setgid , stickybit , 各位可去
参考 Unix Security 方面的书籍 .
(3)UID: user id , 每个"人"都要不一样 , 习惯上 , 100 以前被保留做为
特殊的 user id , 而 root 总是 0.
(4)GID: group id , 在比较早期的系统 , 一个 user 同时只能在一个 group
不过现在就没有这种限制了 .
(5)GCOS: 这栏基本上没有特殊格式限制 , 在这里可以写上你的 full name
家中电话, 住址等...... 爱写什麽就写什麽. 虽然你可以乱写一
通, 但若你用到逗号, 系统会把它当成区间. 如你写: Jin-Hwa
Sheu, NCTU, 80317, (02)1234123 这些都会被当成 Full Name,
Office, Home Phone. finger 这个指令会去读这地方的资讯. 用
chfn 可改变这栏.
(6)Home Directory: 这栏没什麽 , 就是记录 user 的 home directory 而已
利用 cd 或 cd~ 都可回到 home directory .
(7)Login Shell: 设定使用者所使用的 shell , 预设值是 /bin/bash . 当
然 , 你也可以自己改成 csh 或 tcsh , zsh 也是不错 ,
假如有 free 版的 korn Shell 也可拿来用用 . 用 chsh
可改变你的 login shell .
为了 security 方面的考量 , 各位可以安装 shadow , 将 passwd 这个档
完全的与一般 user 隔绝开来 , 连读也没有办法读 passwd 这个档 .
/etc/profile : profile 这个档是 bash 这个 shell 所用的 , profile 之於 bash
就好像 cshrc 之於 csh. 同样的, /etc 下的 profile 也是 SA 在维
护的, 主要是放著全域的设定 ( Global Setting)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -