一、 挂接硬盘,分区:(本例为挂接一个hda硬盘)
1、 装好新硬盘,启动计算机
2、 执行 # fdisk –l 查看磁盘分区,找到新添加的硬盘如本例中的/dev/hda
3、 # fdisk /dev/hda 为/dev/hda进行分区
① m键,查看帮助信息
② n键,创建一个新的分区,(其中选p则创建一个主分区,序号为1-4,选e则创建一个扩展分区.)
③选p创建第一个主分区,(按默认值即可,空间大小设定格式为:+nM,如+200M
④重复②③步,创建其它所需的主分区和扩展分区
⑤扩展分区创建后,重复②,将提示创建逻辑分区,选l(注意分区标号,逻辑分区标号为5以后的数值
⑥全部创建完成后,输入p键,查看分区状况及磁盘文件类型(默认的为ext3)
⑦如需更改磁盘文件类型,输入t,选磁盘号,在l列表中找到所需的型号,输入即可修改
⑧如对分区不满意,q键不保存退出,可返回3重新分区如果确定无误,w键存盘.
4、# fdisk –l (这时可以看到新建所有分区的情况,但新分区未格式化)
5、# mkfs.ext3 /dev/hda1 2 3……(按4中所显示的新分区的顺序,对分区进行格式化)
6、# mkdir /mnt/had(1,2,3) 创建挂接目录,(注意路径,本例为/mnt下的目录)
7、# mount –t ext3 /dev/hda1 /mnt/hda1 (挂接分区,本例是将第一个新分区挂接到/mnt/hda1)
8、重复7挂接其它的分区(即挂接新分区至指定的目录,就是在步骤6中所建的目录)
9、修改/etc/fstab
① # vi /etc/fstab
② 添加如下内容:
/dev/hda1 /mnt/hda1 ext3 auto 0 0
/dev/hda2 /mnt/hda2 ext3 auto 0 0
③:wq存盘退出.
10、重启机器,挂接成功.可用#df 命令查看.
二、进行磁盘配额(以上面挂接好的分区/dev/hda1为例)
① # vi /etc/fstab(在所需要配额的分区auto后加入usrquota,grpquota中间用逗号隔开)
如本例中为:
/dev/hda1 /mnt/hda1 ext3 auto,usrquota,grpquota 0 0
② # vi /etc/rc.d/rclocal
在最后加入/sbin/quotaon –auvg (开机启用所做的配额选项)
③ # quotacheck –cug /dev/hda1 (在hda1目录下生成aquto.use和aquto.group文件)
④ # useradd test
# passwd test 创建test用户
⑤ # edquota –u test 为test用户进行配额,修改soft和hard下的两个数值,其中hard>=soft
⑥ # quotaon –u test 启用配额或重启计算机.
或quotaon –a 启用所有配额
⑦ # quota –v 可查看配额情况
⑧ 如果要停用,# quotaoff -a
9、 组配额:①②③步与组配额一致
第④步:#groupadd tests
第⑤步:#Edquato –g tests
然后组中添加成员,启动配额
注:仅初始组可进行配额,组中所有成员共享配额
三 配置DNS服务:
说明:本例主机名为linux90,IP:192.168.0.220,子网掩码:255.255.225.0,域名:net.com.cn
1、 查看并修改主机名.
# hostname linux90
# vi /etc/sysconfig/network (修改hostname=linux90 图中反白位置)
如有必要同时修改/etc/hosts,将第3行中的第一个local改为linux90
2、 查看IP地址:# ifconfig
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改IPaddress=192.168.0.220Netmask=255.255.225.0
其它可根据需要修改.如network=192.168.0.0等(见下图反白位置)
3、# service network restart 重启网络配置
4、查看DNS组件安装情况:
① # rpm –qa bind 或rpm –qa | grep bind
② 如果未安装,先进行安装
# rpm –ivh bind-utils-9.2.1-16.i386.rpm
# rpm –ivh caching-nameserver-7.2-7……..
# rpm –ivh bind-9.2.1-16.i386.rpm
③ 安装完成,配置/etc/named.conf
# vi /etc/named.conf 在文件后添加如下内容:
Zone "net.com.cn" IN {
Type master
File "net.com.cn.zone"
Zone "0.168.192.in-addr-arpa" IN {
Type master
File "192.168.0.rev"
注意以上内容字母为小写,分号结尾.(如图中反白位置)
④ 进入/var/named目录,生成两个配置文件
# cd /var/named
# touch net.com.cn.zone
# touch 192.168.0.rev
文件名必须于③中的file后的文件名相同.
⑤ 拷贝当前目录下的named.local内容至net.com.cn.zone
# cp named.local net.com.cn.zone
⑥ # vi net.com.cn.zone 做如下内容的修改:
修改第一行主机名localhost为linux90.net.com.cn及后面的邮件地址为root.linux90.com.cn
清除第8行至最后的所有内容, 添加如下内容:
@ IN NS linux90.net.com.cn.
@ IN MX 0 linux90.net.com.cn.
Linux90 IN A 192.168.0.220 (此为主机A记录)
www IN CNAME linux90.net.com.cn (主机别名记录)
⑦ # cp net.com.cn.zone 192.168.0.rev 设置反向记录
# vi 192.168.0.rev 修改此文件,加如下内容:
清除第9行至以后的内容,加入如下内容
220 IN PTR linux90.net.com.cn.
IP IN PTR 主机名称 (此行为说明,就是可以加入其它的反向记录,见下图)
# vi /etc/resolv.conf 修改此文件,确定DNS指向本机
修改nameserver 192.168.0.220
5、# service named start 启动DNS服务
# rndc reload 重新引导rndc (可选)
# service named restart 重启DNS服务 (可选)
6、用nslookup IP地址或主机名 检测DNS
7、配置辅助DNS
安装完成,配置/etc/named.conf
# vi /etc/named.conf 在文件后添加如下内容:
Zone "net.com.cn" IN {
Type slave
File "net.com.cn.zone"
Masters{192.168.0.220}
Zone "0.168.192.in-addr-arpa" IN {
Type slave
File "192.168.0.rev"
Masters{192.168.0.220}
# vi /etc/resolv.conf 修改此文件,确定DNS指向本机
修改nameserver 192.168.0.220 确定DNS指向主DNS服务器
重启服务
8、配置转发器
不同之处
Vi /etc/named.conf
Directory "/var/named" : 第3行Forwarders { 192.168.0.220 :} 插入此行(IP地址可多个以:隔开 并以:结尾)
重启服务
9、委派
①父域,子域个自配置其主DNS服务器
②子域配置转发器
③父域配置委派:
编辑正向数据库配置文件
Vi /var/named/net.com.cn.zone
在文件后添加:
Linux9.bj IN A 192.168.0.222
Bj IN NS linux9.bj.net.com.cn
④ 父域,子域均重启
四、配置DHCP服务 (以上面配置的DNS服务为例)
1、检查是否安装DHCP #rpm –qa | grep dhcp
2、如未安装,先进行安装:
# rpm –ivh dhcp-3.0pl1-23.i386.rpm
3、# cp /usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample /etc/dhcpd.conf (复制模版文件)
4、# vi /etc/dhcpd.conf 配置DHCP主文件,做如下修改(视具体情况定,现以本机为例)
Ddns-update-style interim红字部分可改为no,(指是否允许DNS更新)
Igors client-updates
Subnet 192.168.0.0 netmask 255.255.255.0 (本地网络号及掩码)
Option routers 192.168.0.220 (路由网关地址)
Option subnet-mask 255.255.255.0 (子网掩码)
Option domin-name "net.com.cn" (域名)
Option domin-name-service 192.168.0.220 (DNS服务器地址)
Option dynamic-bootp 192.168.0.221 192.168.0.230
Option dynamic-bootp 192.168.0.240 192.168.0.254(可分配的IP地址,中间缺省的即为排除地址)
Default-lease-time 21600
Max-lease-time 43200默认的DHCP租约时间
5、# service dhcpd start 启动DHCP服务
五、配置APACHE服务:
1、检查httpd是否安装,# rpm –qa | grep httpd
2、安装:# rpm –ivh httpd-2.0.40.21.i386.rpm
# rpm –ivh httpd-manual-2.0.10.21.i386.rpm
3、# vi /etc/httpd/conf/httpd.conf
添加157行listen 80
其它修改可根据实际情况
4、# service httpd start
5、配置两个虚拟主机:(以vo1.net.com.cn和vo2.net.com.cn为例)(此部分内容可以不做,所以用红字表示出来)
① 创建网站虚拟目录
# vi mkdir /var/www/vo1.net.com.cn
# vi mkdir /var/www/vo2.net.com.cn
② # vi /var/named/net.com.cn.zone 添加对vo1,vo2的域名解析
Vo2 IN CNAME www.net.com.cn. (见下图中反白位置)
③ # vi /etc/httpd/conf/httpd.conf (添加这两个虚拟目录)在文件最后添加如下:
NameVirtulHost 192.168.0.220
<VirtulHost vo1.net.com.cn>
DocumentRoot /var/www/vo1.net.com.cn
ServerName vo1.net.com.cn
ErrorLog logs/vo1.net.com.cn-error_log
CustomLog logs/vo1.net.com.cn-access_log
</VirtulHost>
<VirtulHost vo2.net.com.cn>
DocumentRoot /var/www/vo2.net.com.cn
ServerName vo2.net.com.cn
ErrorLog logs/vo2.net.com.cn-error_log
CustomLog logs/vo2.net.com.cn-access_log
<VirtulHost>
(如图中反白位置)
④ # service named restart
# service httpd restart
六、配置sendmail服务及使用openwebmail (此例与上面配置的DNS、DHCP、Http结合)
1、安装sendmail及openwebmail
# rpm –ivh sendmail-cf-8.12.8-4.i386.rpm
# rpm –ivh sendmail-doc-8.12.8-4.i386.rpm
#rpm –ivh m4-1.4.1-13.i386.rpm
以上是安装sendmail组件.其中第三步为可选组件
# rpm –ivh perl-CGI-2.81.88.i386
# rpm –ivh perl-compress-zlib-1.21.RH9.i386
# rpm –ivh suidperl-5.8.0-88.i386.rpm
# rpm –ivh Text-Iconv-1.2-RH80.i386.rpm
# rpm –ivh openwebmail-2.32-1.i386.rpm
以上是安装openwebmail组件,openwebmail组件redhat光盘里没有提供,需要从http://www.openmail.org网站上下载,或从老师提供的文件包里安装.
2、 安装POP3收信组件
# rpm –ivh imap-2001a-15.i386.rpm
3、 配置sendmail 主文件为/etc/mail/sendmail.cf
① # vi /etc/mail/sendmail.cf
在264行OSaemonPortOptions=Port=smtp, add=127.0.0.1,Name=MTA
O SaemonPortOptions=Port=smtp, add=192.168.0.220,Name=MTA
修改185行OMaxMessageSize=1000000 邮件内容最大为1000000kb
② # vi /etc/mail/local-host-names 添加别名 (邮件服务器的域名)
Linux90
Linux90.net.com.cn
③ #vi /etc/mail/access 添加以下内容 (编辑邮件转发器)
Linux90.net.com.cn RELAY (延时转发)
net.com.cn RELAY
192.168.0 RELAY
④ # makemap hash access.db <access (以上两步是更新数据库)
⑤ 配置POP3收信服务
# vi /etc/xinetd.d/ipop3
修改 disable=YES 为disable=no
# vi /etc/xinetd.d/imap
修改 disable=YES 为disable=no
⑥ # service xinetd restart
# service sendmail restart 启动sendmail服务
⑦ 配置openwebmail
# /var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init
根据提示做修改(参考书上178-179页)
#cd /vat/www/cgi-bin/openwebmail/etc
cp.conf.default dbm.conf
vi /www/cgi-bin/openwebmail/etc/dbm.conf
# vi /var/www/cgi-bin/openwebmail/etc/openwebmail.conf.default
修改26行smtpserve 192.168.0.220
(见下图中反白位置)
再次执行
# /var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init
如果无错,会提示你是否发送测试邮件,即告成功.
⑧ # service httpd restart
七、配置Vsftp服务:
① 检查vsftp组件安装情况:
# rpm –qa |grep vsftp
② 安装vsftp组件:
# rpm –ivh vsftp-1.1.3-8.i386.rpm
③ 配置/etc/vsftpd/vsftpd.conf
可做如下修改,前面的数字为行号:
7 anonymous_enable=YES (匿名用户可登录,NO为不可,默认为YES)
10 local_enable=YES (本地用户可登录,默认为YES)
13 write_enable=NO (不可写入,默认为YES)
17 local_umask=077 (修改匿名权限为777-077即700,默认为022)
22 #anon_upload_enable=YES (默认匿名登录不可上传,此行以被注释)
26 #anon_mkdir_write_enable=YES (默认匿名登录不可新建目录,此行以被注释)
30 dirmessage_enable=YES (显示登录信息)
52 idle_session_timeout=600 (会话闲置时间,600秒后中断)
55 data_connection_timeout=120 (数据连接时间,空闲 102秒后中断)
76 ascii_upload_enable=YES (以ASCII方式可上传)
77 ascii_download_enable=YES (以ASCII方式可下载)
101 pam_server_name=vsftp (默认vsftp服务器名)
102 userlist_enable=YES (设置vsftpduser_list文件中的用户不可访问ftp)
104 listen=YES (为NO时,以Xinetd模式运行,为YES时,以独模式运行)
105 tcp_wrappers=YES (使用TCP_Wrappers远程访问控制)
可添加:
Anon_other_write_enable=YES (仅能上传)
max_clients=10 (最大壳户端连接数)
Max_per_ip=2 (统一IP最大连接数)
anon_max_rate=30000 (匿名用户最大下载速率30K)
8 no_anon_password=YES (匿名用户可不输密码)
9 anon_umask=077
enable:允许中断,默认为unmaskif
null
disable:禁止中断,默认为mask
if
null
mask:mask
一个中断源,通常是关闭中断
mask_ack:响应并mask中断源
unmask:unmask中断源
例如
irq_desc[irq].mask
=
pcf50606_mask_irq
irq_desc[irq].unmask
=
pcf50606_unmask_irq
//mask,unmask函数与enable_irq/disable_irq对应,把使能禁止中断对应到设置pcf50606中断mask中
1,先找到/etc/passwd里面是否有你输入的帐号,没有的话则跳出,有的话就将该帐号对应的UID,GID
读出来,另外还有该帐号的家目录与shell设定也一并读出;
2,核对密码表,这时Linux会进入/etc/shadow里面找出对应的帐号与UID,然后核对一下你刚刚输入的密码
与里面的密码是否相符
3,如果一切OK的话,就进入Shell控管的阶段
/etc/passwd的档案结构
1 帐号名称 用来对应UID的
2 密码 会看到一个X 密码数据改放到/etc/shadow
3 UID 0表示root 1~ 499表示系统帐号 1~99 由distributions自行建立的系统帐号,100~499用户有系统帐号需求时,可以使用的帐号UID
4 GID 这个/etc/group的观念和/etc/passwd差不多,用来规范组名与GID对应而已
5用户信息栏说明,只是用来解释这个帐号的意义而已,不过,如果你提供使用finger的功能时,这个字段可以提供很多的讯息,chfn指令用于解释
6 家目录 root就是/root
7 Shell 当用户登录系统后会取得一个Shell来与系统的核心沟通,以进行用户的 *** 作任务,一般取值为/sbin/bash, 如果用来替代成让帐号无法取得
shell环境的登录动作,那就是/sbin/nologin这个东西
/etc/shadow的档案结构
1 帐号名称 用来必须要与/etc/passwd 相同才行
2 密码 经过编码的密码(加密)啦!这个档案只有root才可以读写就是了,不要不小心更动这个档案的权限,由于固定的编码系统产生的密码长度
必须一致,因此在此字段上加上!或*改变了密码字段的长度,就会让密码【暂时失效】了
3最近更动密码癿日期: 这个字段的值是以1970年1月1日而累加的日期,14126表示的就是2008-09-04那一天,想要了解该日期,可以使用chage
这个指令的帮忙
4 密码不可被改动的天数: 这个帐号最近一次被更改后需要多少时间才能再次被变更,如果是0的话,表示密码随时可以更动的意思
5 密码需要重新变更的天数:强制性的规定该密码在多少时间后需要重新的设定一下密码
6 密码需要变更期限前的警告天数:表示提示用户这个密码就要到期了,请尽快重新设定你的密码
7 密码过期后的帐号宽限时间,过了期限后依旧没有更新密码,那么密码就算过期了,虽然密码过期了,但是该帐号还是可以用来进行其他工作的
包括登录系统取得bash,不过如果密码过期了,登录系统时,系统会强制你必须要重新设定密码才能登录继续使用,如果密码过期几天后,还是没有
登录更改密码,那么这个帐号密码就会【失效】,这个帐号再也无法使用该密码登录了,密码过期和密码失效并不相同
8 帐号失效日期: 表示此帐号在此日期之后,就无法再使用了,无论密码是否过期
9 保留字段,看以后是否有新功能加入
/etc/group的档案结构
1 组名
2 群组密码 密码已经移动到/etc/gshadow 中去了,这个字段只会存在一个【x】而已
3 GID群组ID,
4 此群组支持的帐号名称: 如果想让dmtsai加入root群组的话,那么在这行的最后面加上【,dmtsai】,注意不要空格【root:x:0:root,dmtsai】
执行groups得到这个用户所有支持的群组,第一个输出的群组即为有效群组,touch一个新档案,那么该档案的群组即为dmtsai了
newgrp:有效群组的切换,不过使用newgrp是有限制的,那就是你想要切换的群组必须是你已经有支持的群组,例如:dmtsai可以在
dmtsai/users这两个你支持的群组之间进行切换的,执行newgrp users 可以变更有效群组为users这个群组,这个指令执行后,是以另一个
shell来提供接下来的 *** 作的,这个时候dmtsai这个使用者目前是以另一个shell登录的,而且新的shell给予dmtsai有效的GID为users
有效群组被重新计算,由于是新取得的一个shell,想要返回到原本的环境中,需要输入exit回到原本的shell中
你要加入一个群组有两个方式,一个是透过系统管理员root利用usermod帮你加入,还可以透过群组管理员以gpasswd帮你
加入到他管理的群组中
新增与移除使用者:useradd 相关配置文件,passwd, usermod userdel
useradd [-u UID] [-g 刜始群组] [-G 次要群组] [-mM]\ 这句就是增加初始群组和次要群组的方法
创建用户时,默认会建立用户家目录,且目录的权限为700,同时还会帮我们处理几个项目
/etc/passwd 里面建立一行与数据有关的数据,包含UID和GID
/etc/shadow 里面将此账号的密码相关参数填入,但尚未有密码
/etc/group 里面加入一个账号名称一模一样的组名
/home 底下建立一个与账号同名的目录作为用户家目录,且权限为700
用户建立系统账号一般由100号以后算起,所以这里我们加上 -r 这个选项后,系统将账号与账号同名群组的UID/ GID都指定小于500以下,由于这些账号只是用来运作
系统所需服务的权限设定所以不会主动建立家目录
useradd 会更改以下的文件
用户账号与密码参数方面的档案:/etc/passwd, /etc/shadow,使用者群组相关方面癿档案:/etc/group, /etc/gshadow 用户的家目录:/home/账号名称
而家目录中的内容来自于/etc/default/useradd 中的内容 可以用useradd -D查看到,
GROUP=100 的含义分为两种
1,私有群组机制,系统建立一个与账号一样的群组给使用者作为初始群组,RHEL FEDORA CENTOS 都是这样设定的
2,公有群组机制,就是以100这个群组作为新建账号的初始群组,SUSE就是这样设定的
HOME=/home:用户家目录的基准目录(basedir)
INACTIVE=-1:密码过期后是否会失效的设定值 0代表过期后失效,1代表永远不失效,30代表30天后失效
EXPIRE=:账号失效的日期
SHELL=/bin/bash:默认使用的 shell 程序文件名
如果是mail server ,那么不许用户登陆系统得到shell,那么可以将这里设定为/sbin/nologin,如此以来,新建的用户都无法登陆,免去了后续使用usermod的修改手续了
SKEL=/etc/skel:用户家目录参考基准目录
vbird1 家目录 /home/vbird1 内的各项数据,都是由 /etc/skel 所复制过去的,你可以在/etc/skel目录内容修改.bashrc文件或者建立www这个目录,那么未来新增的使用者
的家目录下就会有www这个目录了
CREATE_MAIL_SPOOL=yes:建立使用者的 mailbox,这个值设置为yes,那么ll /var/spool/mail/这个目录下就会存在使用者的邮箱了
除了以上的账号设定值之外,UID和GID还有密码参数是参考/etc/login.defs文件的
文件内容包括
MAIL_DIR /var/spool/mail <==用户默认邮件信箱放置目录
现在用户登陆系统时的密码校验是通过PAM模块来验证的,所以PASS_MIN_LEN是失效的
UID_MIN UID_MAX UID的最小和最大值,一般创建用户时,会先查询/etc/passwd中的最大UID数值,再加上一就是新账号的UID了,如果加上-r 那么就会找出比500小的
最大的那个UID + 1
CREATE_HOME yes <==在不加 -M 及 -m 时,是否主动建立用户家目录
UMASK 077 <==用户家目录建立的 umask ,因此权限会是 700
USERGROUPS_ENAB yes <==使用 userdel 删除时,是否会删除初始群组
MD5_CRYPT_ENAB yes <==密码是否经过 MD5 的加密机制处理
通过以上说明,useradd这个命令会参考 /etc/default/useradd /etc/login.defs /etc/skel/* 等文件的内容
passwd
当使用useradd建立账号之后,预设情况下账号暂时是封锁的,无法登陆的,只有passwd设定密码后才能登陆
选项与参数
--stdin :可以透过来自前一个管线的数据,作为密码输入,对 shell script 有帮助
-l :是 Lock 的意思,会将 /etc/shadow 第二栏最前面加上 ! 使密码失效;
-u :与-l 相对,是 Unlock的意思
-S :列出密码相关参数,亦即 shadow 档案内的大部分信息。
-n :后面接天数,shadow 的第 4 字段,多久不可修改密码天数
-x :后面接天数,shadow 的第 5 字段,多久内必须要更动密码
-w :后面接天数,shadow 的第 6 字段,密码过期前的警告天数
-i :后面接『日期』,shadow 癿第 7 字段,密码失效日期
一般用户设置密码的格式非常严格,大多使用PAM模块来进行密码的检验,这个管理的机制写在 /etc/pam.d/passwd 当中,而该档案与密码有关的测试模块
就是使用pam_cracklib.so 这个模块会检验密码的相关信息,取代/etc/login.defs内的PASS_MIN_LEN
设定密码还可以使用管道的方式 echo "abc543CC" | passwd --stdin vbird2
chage 这个命令也可以查看密码的相关参数信息的
-l :列出该账号详细密码参数;
-d :后面接日期,修改 shadow 第三字段(最近一次更改密码癿日期),格式 YYYY-MM-DD
-E :后面接日期,修改 shadow 第八字段(账号失效日),格式 YYYY-MM-DD
-I :后面接天数,修改 shadow 第七字段(密码失效日期)
-m :后面接天数,修改 shadow 第四字段(密码最短保留天数)
-M :后面接天数,修改 shadow 第五字段(密码多丽需要迚行变更)
-W :后面接天数,修改 shadow 第六字段(密码过期前警告日期)
chage -l vbird2 列出vbird的详细密码信息
chage还有一个功能,当用户第一个登入时,强制她们一定要修改密码才能使用系统资源,
例如:
useradd agetest
echo "agetest" | passwd --stdin agetest
chage -d 0 agetest 此时此账号的密码建立时间会被改为1970.1.1,所以有问题
再次登录的时候,就会强制你修改密码了
usermod 进行相关数据的微调
userdel 删除用户的相关数据,包括 :/etc/passwd, /etc/shadow /etc/group, /etc/gshadow /home/username, /var/spool/mail/username..
选项不参数: -r :连同用户的家目录也一起删除
如果想让某个账号暂时不启用的话,将/etc/shadow中的第八个字段设定为0就可以让该账号无法使用了,所有跟该账号相关的数据都会留下来
真正删除用户之前最好先执行 find / -user username 查询该用户创建了的所有文件
无论是 useradd/usermod/userdel ,那都是系统管理员所能够使用的指令,一般用户除了修改密码之外,还可以进行一些账号数据变更与查询指令的
finger
一般用户可以使用这个命令来查阅用户相关的信息,大部分是/etc/passwd这个档案里面的信息,
finger [-s] username 列出的信息包括账号,全名,家目录,shell,查询用户登陆主机的情况,信箱资料,计划资料
利用 vbird1 建立自己的计划档
echo "I will study Linux during this year." >~/.plan 接着使用finger vbird1就可以看到计划信息了
finger不加参数 , 找出目前在系统上面登入的用户与登入时间 除了显示这个信息之外,还会显示Office Phone等信息,这些信息是通过chfn来设定的
chfn 有点像 change finger的意思
-f :后面接完整的大名; -o :您办公室的房间号码; -p :办公室的电话号码; -h :家里的电话号码!
vbird1 自己更改一下自己的相关信息
chfn 接着等待用户输入
chsh 就是change shell 的简写
chsh [-ls]
选项与参数: -l :列出目前系统上面可用的shell ,其实就是 /etc/shells 的内容! -s :设定修改自己的 Shell 啰
无论是 chfn 不 chsh ,都是能够让一般用户修改 /etc/passwd 这个系统文件的,而这两个命令一定有SUID这个属性的,否则一般用户是不能修改passwd文件的
id
id 这个指令则可以查询某人或自己的相关 UID/GID 等等的值
新增与移除群组
groupadd
-g :后面接某个特定的GID ,用来直接给予某个 GID ~
-r :建立系统群组啦!与 /etc/login.defs 内的 GID_MIN 有关。
单单家里群组时,最好使用 groupadd -r 群组名的方式来建立啦
groupmod 与 usermod类似
选项与参数: -g :修改既有的 GID 数字;
-n :修改既有的组名
groupmod -g 201 -n mygroup group1
groupdel 删除群组
删除群组时必须要确认/etc/passwd内的账号没有与任何人使用该群组作为 初始化群组
gpasswd:群组管理员功能
-A :将 groupname 的主控权交由后面的使用者管理(该群组的管理员) 例如 gpasswd [-A user1,...] [-M user3,...] groupname
-M :将某些账号加入这个群组当中!
-r :将 groupname 的密码秱除 例如 gpasswd [-rR] groupname
-R :让 groupname 的密码栏失效
:若没有任何参数时,表示给予 groupname 一个密码(/etc/gshadow) 例如gpasswd groupname
-a :将某位使用者加入到 groupname 这个群组当中!
-d :将某位使用者移除出 groupname 这个群组当中。
gpasswd -A vbird1 testgroup 将vbird1设置为testgroup 的群组管理员
gpasswd -a vbird3 testgroup 让vbird3设置成为testgroup组的成员
群组管理员可以设定多个,上面的vbird1就可以设定testgroup的群组管理员了,所以 vbird1 就可以自行增加群组成员啰,该群组成员就能够使用 newgrp 啰
测试:建立三个用户的共同开发目录
需要将这三个用户都加上一个共有的公有群组,接着在这个目录上设置为该群组,再将这个目录的权限设置为2770 ,其中的2代表SGID,也就是这三个使用者能够修改
对方的档案,这个SGID必须要存在,
那如果需要增加一个myuser1作为这个项目的助理,他需要有查看这个项目的内容,但不能修改这个目录内的任何数据,这样既不能修改目录的权限为2775,因为这样的话
其他人也能进入这个目录了,同时也不能将这个用户加入到公有的群组上,因为一旦加上,这个用户就可以修改这个目录内的内容了。
所以这个时候就需要加上ACL的使用了
传统的权限仅有三种身份,也就是(owner, group, others) 搭配三种权限 (r,w,x) 而已,没有办法为某一个使用者或某一个群组来设定特定的权限需求,此时就一定要使用
ACL这个机制了
ACL的机制主要是提供传统的owner,group,others 的 read,write,execute 权限之外的细部权限设定,ACL 可以针对单一使用者,单一档案或者目录来进行 r,w,x 癿权限规范,对
于需要特殊权限的使用状况非常有帮助
ACL主要可以针对以下这些方面来控制权限
使用者 : 可以针对使用者来设定权限
群组:可以针对群组为对象来设定其权限
默认属性mask 还可以针对在该目录下在建立新档案/目录时,规范新数据的默认权限
使用ACL必须要有文件系统的支持才行,目前绝大多数的文件系统都有支持 ACL的功能,包括 Ext3 Ext4 JFS XFS等等
查看本文件系统是否支持ACL可以执行 mount命令
mount命令 可以看到文件系统的大致情况,接着也可以由superblock内容去查询 dumpe2fs -h /dev/hda1
由mount单独查询,未必可以看到实际的项目,由于目前的distributions 常常会主动加入某些默认功能,在rhel预设的情况下(Default Default mount ) ,就会帮你加入acl的
如果没有默认加上acl,那么就要手动的加上acl的支持了,mount -o remount,acl / 这样就可以了,再执行mount就可以看到效果了,但是如果想要每次开机都生效,那么就
要写入到/etc/fstab中去
acl的命令有getfacl 和 setfacl
当设置好文件系统支持acl后,接下来可以利用 getfacl setfacl 来设定acl了
getfacl:取得某个档案/目录的 ACL 设定项目;
setfacl:设定某个目录/档案的 ACL 规范。
setfacl 指令用法
选项不参数:
-m :设定后续的 acl 参数给档案使用,不可与 -x 合用;
-x :删除后续的 acl 参数,不可与 -m 合用;
-b :移除所有的 ACL 设定参数;
-k :移除预设的 ACL 参数,关于所谓的『预设』参数于后续范例中介绍;
-R :递归设定 acl ,亦即包括次目录都会被设定起来;
-d :设定『预设 acl 参数』的意思!叧对目录有效,在该目录新建癿数据会引用此默认值
1. 针对特定使用者的方式:,例如针对 vbird1 癿权限规范rx:
原先的 -rw-r--r-- 1 root root 0 Feb 27 13:28 acl_test1
执行 setfacl -m u:vbird1:rx acl_test1
执行后的 -rw-r-xr--+ 1 root root 0 Feb 27 13:28 acl_test1
结果 权限部分多了个 + ,且与原本的权限 (644) 看起来差异很大!
再次执行 setfacl -m u::rwx acl_test1
结果 -rwxr-xr--+ 1 root root 0 Feb 27 13:28 acl_test1 使用者栏位为冒号代表设定该档案拥有者,所以root的权限变成了rwx了
设定的格式为 『 u:使用者:权限 』的方式来设定的啦,一个档案设定了ACL参数后,他的权限部分会多出一个 + 号,而且此时看到的权限与实际的权限很可能会有不一样
可以使用getfacl来进行查看
getfacl 指令用法
getfacl filename getfacl的选项几乎与 setfacl 相同
列出刚刚设定的acl_test1的权限内容
# file: acl_test1 <==说明档名而已!
# owner: root <==说明此档案的拥有者,
# group: root <==此档案的所属群组,
user::rwx <==使用者列表栏是空的,代表档案拥有者的权限
user:vbird1:r-x <==针对 vbird1 的权限设定为 rx ,与拥有者不同!
group::r-- <==针对档案群组的权限设定仅有 r
mask::r-x <==此档案预设的有效权限 (mask)
other::r-- <==其他人拥有的权限啰!
显示的数据前面加上 # 的,代表这个档案的默认属性,包括文件名、档案拥有者与档案所属群组。
底下出现的 user, group, mask, other 则是属于不同的使用者、群组与有效权限(mask)的设定值
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)