Posts Tagged uid

CentOS 5.x系统服务优化详解

下面的建议主要是针对 Linux 单机服务器的角色来说明的,不是针对桌面环境

服务名称 功能简介
acpid (系统)进阶电源管理的介面,这是一个新的电源管理模组, 可以监听来自核心层的电源相关事件而予以回应。 CentOS 的设定档在 /etc/acpi/events/power.conf 中,预设仅有当你按下 power 按钮时,系统会自动关机!

anacron(可关闭) (系统)与循环型的工作排程 cron 有关,可在排程过期后还可以唤醒来继续执行, 设定档在 /etc/anacrontab。

apmd(可关闭) (系统)设定档在 /etc/sysconfig/apmd ,也是电源管理模组! 可侦测电池电量,当电池电力不足时,可以自动关机以保护电脑主机。

atd (系统)单一的例行性工作排程,抵挡机制的设定档在 /etc/at.{allow,deny}

auditd (系统)可以让系统需 SELinux 稽核的讯息写入 /var/log/audit/audit.log 中。若此服务没有启动,则讯息会传给 syslog 管理。

autofs(可关闭) (系统)可用来自动挂载来自网路上的其他伺服器所提供的网路磁碟机 (一般是 NFS)。 不过我们是单机系统,所以目前还没必要这个服务。

avahi-daemon(可关闭) (系统)也是一个用户端的服务,可以透过 Zeroconf 自动的分析与管理网路。 Zeroconf 较常用在笔记型电脑与行动装置上,所以我们可以先关闭他!

bluetooth(可关闭) (系统)用在蓝芽装置的搜寻上,如果 Linux 是当作伺服器使用时, 这个服务可以暂时关闭也没关系!

cpuspeed (系统)可以用来管理 CPU 的频率功能。若系统闲置时,此项功能可以自动的降低 CPU 频率来节省电量与降低 CPU 温度喔!

crond (系统)系统设定档为 /etc/crontab。

cups(可关闭) (网路)用来管理印表机的服务,可以提供网路连线的功能,有点类似列印伺服器的功能哩! 你可以在 Linux 本机上面以浏览器的 http://localhost:631 来管理印表机!由于我们目前没有印表机,所以可以暂时关闭他。

firstboot(可关闭) (系统)还记得系统第一次进入图形介面还需要进行一些额外的设定吗? 就是这个服务的帮忙啦!既然已经安装妥当,现在你可以将这个服务关闭啰。

gpm (系统)在 tty1~tty6 的环境下你竟然可以使用滑鼠功能来复制贴上,就是这个 gpm 提供的能力啦!

haldaemon(可关闭) (系统)通常用在桌上型电脑的环境中,可侦测类似 usb 的装置呢! 不过,如果是伺服器环境,这个服务倒是可以关闭啦!如果是桌上型电脑,那最好可以启动啰!

hidd(可关闭) (系统)也是蓝芽服务的功能啦!可以提供键盘、滑鼠等蓝芽装置的侦测哩! 须搭配 bluetooth。伺服器环境倒是不需要此项服务。

hplip(可关闭) (系统)主要是针对 HP 的印表机功能所开发的脚本服务,如果你的环境中并没有 HP 相关设备,这个服务就给他关闭吧!

ip6tables(可关闭) (网路)是针对本机的防火墙功能!这个防火墙主要是针对 IPv6 的版本, 如果你的网路环境并没有 IPv6 的设备,那么这个服务是可以关闭的。

iptables (网路)本机防火墙功能,是核心支援的呢!所以功能与效能都非常棒!当然不能够取消啊! 只是设定上就得要努力研究啦!我们会在伺服器篇介绍网路相关资讯的。

irqbalance (系统)如果你的系统是多核心的硬体,那么这个服务要启动, 因为它可以自动的分配系统中断 (IRQ) 之类的硬体资源。

isdn(可关闭) (网路)ISDN 是一种宽频设备 (数据机的一种) ,但是在台湾我们比较常使用 ADSL 及光纤设备, 所以这个服务是可以关闭啦。

kudzu(可关闭) (系统)如果你有增加新的硬体时,这个服务可以在开机时自动的侦测硬体, 并且会自动的呼叫相关的设定软体,方便你在开机时就处理好你的硬体啊!

lm_sensors(可关闭) (系统)这个服务可以帮你侦测主机板的相关侦测晶片,举例来说, 某些主机板会主动的侦测 CPU 温度、频率、电压等,这个 lm_sensors 能够将这些温度、频率等数据显示出来喔!

lvm2-monitor (系统)我们已经谈过 LVM 啰!所以我们当然要启动这个服务比较妥当。

mcstrans (系统)与 SELinux 有关的服务,最好也启动啊!

mdmonitor(可关闭) (系统)可以侦测所有软体的状态,暂时似乎也不需要启动这个服务哩!

messagebus(可关闭) (系统)可用来沟通各个软体之间的讯息,有点类似剪贴簿的感觉。 不过在伺服器环境则没有强烈需求就是了。

microcode_ctl(可关闭) (系统)Intel 的 CPU 会提供一个外挂的微指令集提供系统运作, 不过,如果你没有下载 Intel 相关的指令集档案,那么这个服务不需要启动的,也不会影响系统运作。

netfs(可关闭) (网路)可以进行网路磁碟机 (NFS, SMB/CIFS) 的挂载与卸载功能。 目前我们尚未使用网路,因此这个服务可以先关闭。

network (网路)提供网路设定的功能,所以一定要启动的啦!

nfslock(可关闭) (网路)NFS 为一种 Unix like 的网路磁碟机,但在进行档案的分享时, 为了担心同一档案多重编辑的问题,所以会有这个锁住 (lock) 的服务!可以避免同一个档案被两个不同的人编辑时所造成的档案错误问题。

pcscd(可关闭) (系统)智慧卡侦测的服务,可以关闭他啦。

portmap (网路)用在远端程序呼叫的服务,很多服务都使用这个玩意儿来辅助连线的, 因此建议不要取消他,除非你确定你的系统没有使用到任何的 RPC 服务喔!

readahead_early
readahead_later
(可关闭) (系统)在系统开机的时候可以先将某些程式载入到记忆体中,以方便快速的载入, 可加快一些启动的速度。

restorecond (系统)利用 /etc/selinux/restorecond.conf 的设定来判断当新建档案时,该档案的 SELinux 类型应该如何还原。需要注意的是,如果你的系统有很多非正规的 SELinux 档案类型设定时,这个 daemon 最好关闭,否则他会将你设定的 type 修改回预设值。

rpcgssd
rpcidmapd
(可关闭) (网路)与 NFS 有关的用户端功能,在你还没有玩到网路阶段时, 这两个咚咚也能够先取消啦!

sendmail (网路)这就是电子邮件的软体啊!我们想要拥有可寄信的功能时, 这个服务可不能关闭。不过,预设这个服务仅能支援本机的功能,无法收受来自网际网路的邮件喔!

setroubleshoot (系统)一定要启动啊!因为这玩意儿可以将你的 SELinux 相关讯息记录在 /var/log/messages 里面,非常有帮助喔!

smartd (系统)这个服务可以自动的侦测硬碟状态,如果硬碟发生问题的话, 还能够自动的回报给系统管理员,是个非常有帮助的服务喔!不可关闭他啊!

sshd (网路)这个是远端连线伺服器的软体功能, 这个通讯协定比 telnet 好的地方在于 sshd 在传送资料时可以进行加密喔!这个服务不要关闭他啦!

syslog (系统)这个服务可以记录系统所产生的各项讯息, 包括 /var/log/messages 内的几个重要的登录档啊。

xfs(可关闭) (系统)这个是 X Font Server,主要提供图形介面的字型的一个服务, 如果你不启动 X 视窗的话,那么这个服务可以启动。但是如果你有需要用到 X 时,一定要启动这玩意儿,否则图形介面是无法启动的喔。

xinetd (系统)就是 super daemon 啊,不必讲了吧 ^_^

yum-updatesd (可关闭)可以透过 yum 的功能进行软体的线上升级机制, 若有升级的软体释出时,就能够以邮件或者是 syslog 来通知系统管理原来手动升级啊。

上面的服务是 CentOS 5.x 预设有启动的,这些预设启动的服务很多是针对桌面电脑所设计的,所以啰,如果你的 Linux 主机用途是在服务器上面的话,那么有很多服务是可以关闭的啦!如果你还有某些不明白的服务想要关闭的, 请务必要搞清楚该服务的功能为何喔!举例来说,那个 syslog 就不能关闭,如果你关掉他的话,系统就不会记录登录档, 那你的系统所产生的警告讯息就无法记录起来,你将无法进行 debug 喔。

下面继续说明一些可能在你的系统当中的服务,只是预设并没有启动这个服务就是了。只是说明一下, 各服务的用途还是需要您自行查询相关的文章啰。

其他服务的简易说明
服务名称 功能简介
dovecot (网路)可以设定 POP3/IMAP 等收受信件的服务,如果你的 Linux 主机是 email server 才需要这个服务,否则不需要启动他啦!
httpd (网路)这个服务可以让你的 Linux服务器成为 www server 喔!
named (网路)这是域名解析服务器 (Domain Name System) 的服务, 这个服务非常重要,但是设定非常困难!目前应该不需要这个服务啦!
nfs (网路)这就是 Network Filesystem,是 Unix-Like 之间互相作为网路磁碟机的一个功能。
ntpd (网路)服务的全名是 Network Time Protocol ,这个服务可以用来进行网路校时, 让你系统的时间永远都是正确的哩!
smb (网路)这个服务可以让 Linux 模拟成为 Windows 上面的网路上的芳邻。 如果你的 Linux 主机想要做为 Windows 用户端的网路磁碟机服务器,这玩意儿得要好好玩一玩。
squid (网路)作为代理服务器的一个服务,可作为一个区域网路的防火墙之用。
vsftpd (网路)作为档案传输服务器 (FTP) 的服务。

  • Share/Bookmark

Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Mysql删除指定字段的重复记录

delete users_groups as a from users_groups as a,
(
select *,min(id) from users_groups group by uid having count(1) > 1
) as b
 where a.uid = b.uid and a.id > b.id;
保留id最小的那个uid值
  • Share/Bookmark

Tags: , , , ,

Webalizer

ixwebhosting虚拟主机你每建立一个网站都会自动成生Webalizer,关于Webalizer,说明如下:

webalizer是一个高效的、免费的web服务器日志分析程序。其分析结果以HTML文件格式保存,从而可以很方便的通过web服务器进行浏览。Internet上的很多站点都使用webalizer进行web服务器日志分析。Webalizer具有以下一些特性:
  1. 为是用C写的程序,所以其具有很高的运行效率。在主频为200Mhz的机器上,webalizer每秒钟可以分析10000条记录,所以分析一个40M大小的日志文件只需要15秒。
  2. webalizer支持标准的一般日志文件格式(Common Logfile Format);除此之外,也支持几种组合日志格式(Combined Logfile Format)的变种,从而可以统计客户情况以及客户操作系统类型。并且现在webalizer已经可以支持wu-ftpd xferlog日志格式以及squid日志文件格式了。
  3. 支持命令行配置以及配置文件。
  4. 可以支持多种语言,也可以自己进行本地化工作。
  5. 支持多种平台,比如UNIX、linux、NT, OS/2 和 MacOS等。
  安装:
  1.从webalizer的官方站点http://www.mrunix.net/webalizer/下载webalizer,当前的最新版本是webalizer-2.01-06-src.tgz。
  2.首先解开源代码包:
  tar xvzf webalizer-2.01-06-src.tgz
  3.在生成的目录中有个lang目录,该目录中保存了各种语言文件,但是只有繁体中文版本,可以自己转换成简体,或者自己重新翻译一下。
  4.然后进入生成的目录:
  ./configure
  make –with-language=chinese
  5.编译成功后,会产生一个webalizer可执行文件,可以将其拷贝到/usr/sbin/目录下:
  cp webalizer /usr/sbin/
  然后就可以开始配置webalizer了。
  配置:
  上面说过,可以通过命令行配置webalizer,也可以通过配置文件进行配置,在本文中我们将介绍使用命令行参数进行配置,需要了解配置文件使用方法的朋友可以参考README文件,里面有很详细的介绍。
  可以执行webalizer –h得到所有命令行参数:
  Usage: webalizer [options] [log file]
  -h = 打印帮助信息
  -v -V = 打印版本信息
  -d = 打印附加调试信息
  -F type = 日志格式类型. type= (clf | ftp | squid)
  -i = 忽略历史文件
  -p = 保留状态 (递增模式)
  -q = 忽略消息信息
  -Q = 忽略所有信息
  -Y = 忽略国家图形
  -G = 忽略小时统计图形
  -H = 忽略小时统计信息
  -L = 忽略彩色图例
  -l num = 在图形中使用数字背景线
  -m num = 访问超时 (seconds)
  -T = 打印时间信息
  -c file = 指定配置文件
  -n name = 使用的主机名
  -o dir = 结果输出目录
  -t name = 指定报告题目上的主机名
  -a name = 隐藏用户代理名称
  -r name = 隐藏访问链接
  -s name = 隐藏客户
  -u name = 隐藏URL
  -x name = 使用文件扩展名
  -P name = 页面类型扩展名
  -I name = index别名
  -A num = 显示前几名客户类型
  -C num = 显示前几名国家
  -R num = 显示前几名链接
  -S num = 显示前几名客户
  -U num = 显示前几名URLs
  -e num = 显示前几名访问页面
  -E num = 显示前几名不存在的页面
  -X = 隐藏个别用户
  -D name = 使用dns缓存文件
  -N num = DNS 进程数 (0=禁用dns)
  假设,web服务器主机名为www.test.com,统计站点域名为www.test.com, 访问日志为/var/log/httpd/access_log, 我们将webalizer分析结果输出到/var/www/html/log下面。则我们可以建立以下脚本/etc/rc.d/webalizer:
  #!/bin/sh
  run=/usr/sbin/webalizer
  $run -F clf -p -n ” ” -t “www.test.com”
  -o /var/www/html/log /var/log/httpd/access_log
  说明:
  -F clf 指明我们的web日志格式为标准的一般日志文件格式(Common Logfile Format)
  -p 指定使用递增模式,这就是说每作一次分析后,webalizer会生产一个历史文件,这样下一次分析时就可以不分析已经处理过的部分。这样我们就可以在短时间内转换我们的日志文件,而不用担心访问量太大时日志文件无限增大了。
  -n “ “ 指定服务器主机名为空,这样输出结果会美观一些。
  -o “www.test.com” 指定输出结果标题.
  /var/log/httpd/access_log:指定日志文件
  然后在/etc/crontab中加入:
  01 1 * * * root /etc/rc.d/webalizer
  即每天凌晨1点执行该脚本。
  然后运行/etc/rc.d/init.d/crond reload重载入crond服务。
  测试:
  执行以下命令:
  # /etc/rc.d/webalizer
  然后在浏览器中访问http://www.test.com/log/就可以看到webalizer的分析结果了。
  注意:如果您使用了中文语言文件,但是您的linux不支持中文,则在产生的图片中文字可能为乱码。

  • Share/Bookmark

Tags: , , , , , , , , , , , , , , ,

了解 linux 磁盘结构及分区

 

1991年,芬兰的一名学生linus torvalds出于兴趣,以他的灵感和才思,开发了当今最为流行的免费操作系统linux。linux也正以它的优越性赢得越来越多的用户的喜爱,同时也被微软视为最可怕的竞争对手之一。全世界使用linux操作系统的人正以惊人的速度增涨着,同时也产生了linux诸多不同的版本,因为它实在是太可爱了,太好了。但这里也不能说它的好了,要不就有骗稿费之疑了。但它有个最突出的特点是它的源代码全都是公开的,这样每个用户或机构就可以根据自己的需要来修改linux,甚至你也可以开发出属于你自己的操作系统。linux也给我国计算机的发展带来了机遇,借助linux的开放性我们可以开发出全中文的操作系统,我们也将不需“洋油”来过日子了。

由于linux是个自由软件,所以在使用起来不及windows这个商业软件来得上手,但好的是,linux正不断改正这一缺点,现在普通用户也可以轻松地掌握它了。本文就用户在装linux的过程中,所遇到的linux分区问题来详细地介绍一下,这里以red hat linux7.1为例。

 

首先我们要对硬盘分区的基本概念进行一些初步的了解,硬盘的分区主要分为基本分区(primary partion)和扩充分区(extension partion)两种,基本分区和扩充分区的数目之和不能大于四个。且基本分区可以马上被使用但不能再分区。扩充分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区。那么由扩充分区再分下去的是什么呢?它就是逻辑分区(logical partion),况且逻辑分区没有数量上限制。

 

对习惯于使用dos或windows的用户来说,有几个分区就有几个驱动器,并且每个分区都会获得一个字母标识符,然后就可以选用这个字母来指定在这个分区上的文件和目录,它们的文件结构都是独立的,非常好理解。但对这些用户初上手red hat linux吗,可就有点恼人了。因为对red hat linux用户来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构。red hat linux中每个分区都是用来组成整个文件系统的一部分,因为它采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。下面我们先来看看red hat linux的驱动器是如何标识的。

 

对于ide硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指ide硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个ide硬盘上的第三个主分区或扩展分区,hdb2表示为第二个ide硬盘上的第二个主分区或扩展分区。对于scsi硬盘则标识为“sdx~”,scsi硬盘是用“sd”来表示分区所在设备的类型的,其余则和ide硬盘的表示方法一样,不在多说。

 

我们从上面可以看到,red hat linux的分区是不同于其它操作系统分区的,它的分区格式只有ext2和swap两种,ext2用于存放系统文件,swap则作为red hat linux的交换分区。那么现在我们就可以知道red hat linux至少需要两个专门的分区(linux native和linux swap)况且不能将red hat linux安装在dos/windows分区。一般来说我们将red hat linux安装一个或多个类型为“linux native”的硬盘分区,但是在red hat linux的每一个分区都必须要指定一个“mount point”(载入点),告诉red hat linux在启动时,这个目录要给哪个目录使用。对“swap”分区来说,一般定义一个且它不必要定义载入点。下面我们先对“linux native”和“linux swap”有个初步的了解。

 

*swap分区是linux暂时存储数据的交换分区,它主要是把主内存上暂时不用得数据存起来,在需要的时候再调进内存内,且作为swap使用的分区不用指定“mout point”(载入点),既然它作为交换分区,我们理所当然应给它指定大小,它至少要等于系统上实际内存的量,一般来说它的大小是内存的两倍,如果你是16mb的内存,那么swap分区的大小是32mb左右,以此类推。但必须还要注意一点,swap分区不要大于128mb,如果你是64mb的内存,那么swap分区最大也只能被定为127mb,再大就是浪费空间了,因为系统不需要太大的交换分区。以此类推,如果你是128mb或更大的内存,swap分区也只能最大被定为127mb。况且你还必须注意的是如果你是128mb(或更大)的内存,你必须提醒系统你有这么大的内存,要不然它可不认你这个128mb内存。具体如下:当顺利启动了安装过程后,会显示一个boot:提示符,这时你只要键入boot:linux mem=128mb就可以了。另外你也可以创建和使用一个以上的交换分区,最多16个。

 

*linux native是存放系统文件的地方,它只能用ext2的分区类型,上面已说过。对windows用户来说,操作系统必须装在同一分区里,它是商业软件吗!所以你没有选择的余地!对red hat linux来说,你有了较大的选择余地,你可以把系统文件分几个区来装(必须要说明载入点),也可以就装在同一个分区中(载入点是“/”)。下面我们看看可以创建哪些分区(仅列常用几种)。

 

/boot分区,它包含了操作系统的内核和在启动系统过程中所要用到的文件,建这个分区是有必要的,因为目前大多数的pc机要受到bios的限制,况且如果有了一个单独的/boot启动分区,即使主要的根分区出现了问题,计算机依然能够启动。这个分区的大小约在50mb—100mb之间。但是如果想用lilo启动red hat linux系统的话,含有/boot的分区必须完全在柱面1023以下。又由于8gb后的数据lilo不能读取,所以red hat linux要安装在8gb的区域以内。

 

/usr分区,是red hat linux系统存放软件的地方,如有可能应将最大空间分给它。

 

/home分区,是用户的home目录所在地,这个分区的大小取决于有多少用户。如果是多用户共同使用一台电脑的话,这个分区是完全有必要的,况且根用户也可以很好地控制普通用户使用计算机,如对用户或者用户组实行硬盘限量使用,限制普通用户访问哪些文件等。其实单用户也有建立这个分区的必要,因为没这个分区的话,那么你只能以根用户的身份登陆系统,这样做是危险的,因为根用户对系统有绝对的使用权,可一旦你对系统进行了误操作,麻烦也就来了。

 

/var/log分区,是系统日志记录分区,如果设立了这一单独的分区,这样即使系统的日志文件出现了问题,它们也不会影响到操作系统的主分区。

 

/tmp分区,用来存放临时文件。这对于多用户系统或者网络服务器来说是有必要的。这样即使程序运行时生成大量的临时文件,或者用户对系统进行了错误的操作,文件系统的其它部分仍然是安全的。因为文件系统的这一部分仍然还承受着读写操作,所以它通常会比其它的部分更快地发生问题。

 

/bin分区,存放标准系统实用程序。

 

/dev分区,存放设备文件。

 

/opt分区,存放可选的安装的软件。

 

/sbin分区,存放标准系统管理文件。

 

上面介绍了几个常用的分区,一般来说我们需要一个swap分区,一个/boot分区,一个/usr分区,一个/home 分区,一个/var/log分区。当然这没有什么规定,完全是依照你个人来定的。但记住至少要有两个分区,一个swap分区,一个/分区。下面我们来看看怎样分区。

 

用户可以使用两种分区工具:

 

1.disk druid:它是red hat linux提供的硬盘管理工具,它最初是随red hatlinux5一起发售的,它可以根据用户的要求创建和删除硬盘分区,另外还可以为每个分区管理载入点,这是一个不错的分区软件,建议读者使用。本文也将以此软件详细地介绍red hat linux分区。

 

2.fdisk:它是传统的linux硬盘分区工具,比disk druid更强大,使用更加灵活。但是fdisk要求用户对硬盘分区有一定经验,并能够适应且读懂简单的文本界面。如果你是第一次对一个硬盘驱动器进行分区操作的话,最好还是避免fdisk这样的程序,它虽然强大但用起来的感觉不是太好的。

 

附注:此外red hat linux还提供了一种叫fips的分区软件,但这种分区软件具有一定的危险性,不宜提倡操作。虽然有许多人已经成功地用fips对他们的硬盘进行了分区,但这不能保证fips将在你的系统中也能正常地运行。况且red hat linux也不提供对fips的支持,劝你对这种分区软件还是慎用为好。

 

如果你希望将red hat linux安装在已经含有其他操作系统的盘上,也就是多重操作系统,这个情况就比较复杂了,因为一个错误就可以毁掉你辛辛苦苦保存的数据,让你欲哭无泪。如果你想让red hat linux与os/2共存,那你必须使用os/2的分区软件来创建硬盘分区,要不然os/2将不能识别硬盘分区。另外你也可以用其它的一些分区软件来分区,下面列出了一些常见的这种分区工具软件:

 

*partition commander软件,从www.v-com.com处下载。

 

*partition it软件,从www.quarterdeck..com处下载。

 

*partition magic软件,从www.powerquest.com处下载。

 

注意:硬盘分区是一个非常危险的步骤,你要想安全地在不丢失数据的情况下改变磁盘的分区有点不太现实,所以我建议大家对重要得数据进行备份,装多操作系统更要如此,以备不测。当然或许你是刚装系统或就准备重装,那也就是另外一回事了,但是大家对待分区一定要慎重又慎重,切记。

 

下面我们详细地了解一下red hat linux7.1自带的disk druid分区软件所包含的一些信息。

 

1.current disk partitions区域(这里每一行代表了一个硬盘分区)

 

mount point 指出red hat linux启动并运行以后该分区的加载点,交换空间(linux swap)是不需要加载点的。

 

device 硬盘分区的设备名

 

requeted 给这个分区定义时申请的最小空间

 

actual 分配给该分区的实际空间

 

type 说明了该分区的类型

 

2.drive summaries区域(这里每一行代表一个硬盘)

 

drive 显示硬盘的设备名

 

geom[c/h/s] 显示硬盘的物理信息,c(柱面),h(磁头),s(扇区)

 

total 显示硬盘的可用空间

 

used 显示硬盘中已分配的空间

 

free 显示硬盘中末分配的空间

 

bar graph 该条图形化地显示当前硬盘使用的百分比,#号越少,空闲空间越多

 

3.disk druid按钮

 

add 增加一个分区

 

edit 修改在current disk partitons中被选中的分区的属性,选中该按钮将出现一个对话框来进行修改,但只能修改该分区的载入点。如果你需要修改其它内容,请先删除该分区,而后再重新建这分区。

 

delete 删除一个在current disk partitons中被选中的分区

 

ok 确认

 

back 不作保存,返回

 

4.如果你想增加一个分区,请点击“add”按钮,这时会出现一对话框,内容说明如下:

 

mount point 分区载入点,说明分区

 

size 分区的大小

 

grow to fill disk 表明这个分区将添满一个硬盘的整个未分配空间。这时,这个分区的容量可以随着其它分区的修改增加或减少

 

type 选择分区类型

 

allowable drives 选择这个分区将创建在哪个硬盘上

 

好了,通过上面的了解想必大家都能容易地创建出适合自己的分区。下一步我们所要做的工作就是要格式化所建的分区,选择你要格式化的分区并按space键,如果想在格式化分区时检查有无坏块,选择“check for bad blocks during format”,点击ok并按space键。如果分区中已无你要所保存的数据,最好都格式化一下。

  • Share/Bookmark

Tags: , , , , , , , , , , ,

关于Linux 文件系统中路径的理解

目录


++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++


1、Linux文件系统是从/开始的;

在Linux操作系统的文件管理中,命令行模式(在控制台或终端下)的文件或目录管理,要涉及路径这一概念,这是Linux命令行操作的最基础的基础。如果我们了解了路径的概念,就可以随心所欲的进入任何目录,进行我们想的工作。

Linux 文件系统,是一个呈树形结构,是从/做为入口,/(也被称为根目录)下有子目录,比如etc、usr、lib等,在每个子目录下又有文件或子目录,这样就形成了一个树形结构,这种树形结构比较单一。而Windows文件系统呢?它引入了C盘、D盘类似的磁盘概念,使得习惯Windows操作的用户在转向Linux时,会发现Linux根本就有C盘、D盘的概念,有时甚至不知所措。


2、理解路径概念的目的;

引入路径概念目的最终是找到我们所需要的目录或文件。比如我们想要编辑 file.txt 文件,我们首先要知道他存放在哪里,也就是说我们要指出他所在的位置,这时就要用到路径了。


3、路径的构成要素;

路径是由目录或目录和文件名构成的。比如/etc/X11 就是一个路径,而/etc/X11/xorg.conf也是一个路径。也就是说路径可以是目录的组合,分级深入进去,也可以是文录+文件构成。比如我们想用vi编辑xorg.conf文件,在命令行下输入 vi /etc/X11/xorg.conf ,如果我们想进入/etc/X11目录,就可以通过cd /etc/X11来实现。


4、路径的分类;

路径分为绝对路径和相对路径;


4.1 绝对路径;

在Linux中,绝对路径是从/(也被称为根目录)开始的,比如/usr、/etc/X11。如果一个路径是从/开始的,它一定是绝对路径,这样就好理解了;

 

[root@localhost ~]# pwd  注:判断用户当前所处的位置,也就是说他到底位于哪?
/root    注:用户当前位于/root;

[root@localhost ~]# cd /usr/share/doc/  注:我们以绝对路径方式进入/usr/share/doc目录下;
[root@localhost doc]# pwd   注:判断用户当前所处的位置
/usr/share/doc   注:用户位于/usr/share/doc,看来已经达到我们的目的了;

 


4.2 相对路径;

相对路径是以 . 或 .. 开始的,.表示用户当前操作所处的位置,而.. 表示上级目录;在路径中,.表示用户当前所处的目录,而..上级目录,要把.和..当做目录来看。

 

[root@localhost ~]# pwd  注:通过pwd来判断当前用户所在的位置;
/root    注:得出目录处于/root目录中;

[root@localhost ~]# cd .  注:我们进入.
[root@localhost ~]# pwd  注:判断当前用户所处的位置;
/root    注:得出在/root   目录中 ;

[root@localhost ~]# cd ..  注:我们切入/root的上级目录
[root@localhost /]# pwd  注:判断当前用户所处的位置。
/   注:用户当前位于/(根目录)中;

 


5、在路径中一些特殊符号的说明;

这些符号在相对路径中应用的,这些符号能为我们带来方便,所以有必要说说;

 

.   表示用户所处的当前目录;
..  表示上级目录
~  表示当前用户自己的家目录
~USER   表示用户名为USER的家目录,这里的USER是在/etc/passwd中存在的用户名;

 


5.1 符号.应用示例;

通过下面的例子,让我们增强.所表示的意义;

 

[root@localhost ~]# pwd 注:判断用户当前所处的目录;
/root  注:位于/root目录;

[root@localhost ~]# cd .  注:进入.目录,这里的.就是用户当前所处的位置;
[root@localhost ~]# pwd  注:在哪呢?
/root  注:在/root中。

 

理解./的意义;

 

[root@localhost ~]# pwd   注:判断用户当前所处的目录;
/root 注:位于/root目录;

[root@localhost ~]# ls  注:显示用户所处/root目录的文件及子目录;也可以用ls .

[root@localhost ~]# ls .
mkuml-2004.07.17-ananas.tar.bz2  mydir  openQreadme.txt  sun.txt  tmp  upgrade.log

[root@localhost ~]# ls ./tmp/  查看用户所处当前目录下的tmp目录的内容
kernelBak  youdir

[root@localhost ~]# ls tmp/
kernelBak  youdir
[root@localhost ~]#

 

在有些文档中,我们看到类似./filename 来运行一个脚本或程序的例子。其实它就是在用户当前目录下运行的;请看下面的示例;

 

[root@localhost ~]# pwd  注:判断用户当前所处的目录;
/root  注:位于/root目录;
[root@localhost ~]# touch lsfile.sh   注:创建一个文件名为lsfile.sh的文件;
[root@localhost ~]# chmod 755 lsfile.sh  注:修改权限让其可执行;
[root@localhost ~]# echo "ls -la"> lsfile.sh  注:向lsfile.sh文件中加入ls -la 一句指令
[root@localhost ~]# more lsfile.sh  注:用more 工具来查看lsfile.sh 文件的内容;
ls -la

[root@localhost ~]# ./lsfile.sh 注:运行lsfile.sh ,在这里用的是相对路径;
[root@localhost ~]# /root/lsfile.sh  注:这是绝对路径运行lsfile.sh 脚本;

 


5.2 符号..应用示例;

 

[root@localhost ~]# pwd 注:判断用户当前所处的目录;
/root
[root@localhost ~]# cd /etc/X11/  注:进入/目录下的etc目录下的X11目录;
[root@localhost X11]# pwd 注:判断用户当前所处的目录;
/etc/X11  注:看来用户真的位于/etc/X11目录了;
[root@localhost X11]# cd ..   注:退到上级目录;
[root@localhost etc]# pwd  注:判断用户当前所处的目录;
/etc
[root@localhost etc]# cd ../root/ 注:退到上级目录,也就是退到/,然后再进入root目录; 
[root@localhost ~]# pwd  判断是不是进入/目录下的root目录?
/root  注:的确是实现了。

 


5.3 符号~和~USER示例;

~表示当前操作用户的家目录,看下面的例子;

[root@localhost ~]# id  注:查看当前用户的用户信息;我们用哪个用户来操作命令的?
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)  注:看到了,是root用户;

[root@localhost ~]# finger root 注:查看root用户的信息;
Login: root                                               Name: root
Directory: /root    注:这表示root用户的家目录位于/root目录中                    Shell: /bin/bash   

 

 

[root@localhost ~]# pwd  注:判断用户所处的目录;
/root  注:是/root目录;

[root@localhost ~]# cd /etc/X11/  注:进入/etc/X11
[root@localhost X11]# pwd  注:判断用户所处的目录;
/etc/X11 注:看来已经到了/etc/X11;

[root@localhost X11]# cd ~  注:我们返回root用户的家目录;
[root@localhost ~]# pwd
/root  注:是不是返回了??

 

 

~USER的示例;

 

如果我们添加一个用户时,系统会添加一条用户纪录到/etc/passwd文件中,所以/etc/passwd 就是用户的管理文件;~USER中的USER是必须在/etc/passwd中“注册“的用户,这样在~USER中的USER才是有效的。怎么“注册“,当然是用户管理工具来添加用户了。关于用户管理工具,请参考:《Linux 用户管理工具介绍》

为了说明~USER的应用,我们首先添加一个新用户;

 

[root@localhost ~]# adduser linuxsirorg  注:添加linuxsirorg这个用户;
[root@localhost ~]# passwd linuxsirorg 注;为linuxsirorg 设置密码;
Changing password for user linuxsirorg.
New UNIX password: 注:添加linuxsirorg用户密码
Retype new UNIX password: 注:再输入一次;
passwd: all authentication tokens updated successfully.注;添加用户成功;

[root@localhost ~]# finger linuxsirorg  注:查看linuxsirorg用户信息;
Login: linuxsirorg                      Name: (null)
Directory: /home/linuxsirorg            Shell: /bin/bash

注:我们看到新添加的用户家目录在/home/linuxsirorg;

 

~USER的示例;

比如我用root用户操作,并且处于/root目录中;我想进入linuxsirorg用户的家目录;

 

[root@localhost ~]# pwd
/root

[root@localhost ~]# cd ~linuxsirorg/  

注:进入linuxsirorg用户的家目录;其等效命令是cd /home/linuxsirorg;

[root@localhost linuxsirorg]# pwd  注:判断用户所处位置;
/home/linuxsirorg 

[root@localhost linuxsirorg]# cd ~root 注:等同于cd /root ,或等同行cd ~ ;表示返回root的家目录;

 


6、切换用户当前目录的指令 cd ;

用户从一个当前目录时入另一个目录的指令就是用cd ;我们在前面示例中大量应用过,在这里不再多说了;

用法:

 

#cd 路径

 

举例:

 

[root@localhost ~]# cd /usr/share/man/

 

更多的帮助,请参考 man cd 或cd –help


7、判断用户当前所处的工作目录的指令 pwd ;

pwd 指令用来显示用户当前所处的位置的,前面我们也说的很多。

示例:

[root@localhost man]# pwd 注;判断用户当前所处的目录;
/usr/share/man 注:位于/usr/share/man 中;

 


8、关于用户环境变量PATH的设置;

在一般情况下,Linux文件系统中bin或sbin目录中的文件都是可执行的。有时我们为了方便不输入路径就能调用指令或工具,这时要就要设置用户的环境变量PATH。

看下面的一例:

 

[root@localhost ~]# ls
adduml.sh  lsfile.sh  mkuml-2004.07.17  mkuml-2004.07.17-ananas.tar.bz2  mydir  openQreadme.txt  sun.txt  tmp  upgrade.log

[root@localhost ~]# /bin/ls
adduml.sh  lsfile.sh  mkuml-2004.07.17  mkuml-2004.07.17-ananas.tar.bz2  mydir  openQreadme.txt  sun.txt  tmp  upgrade.log

 

上面的例子,第一个指令就是直接运行了ls命令来显示当前目录下的文件和子目录;第二个条/bin/ls 指令是用绝对路径的ls来运行的;这两种方式运行的结果看来是一样的。

在论坛上,有些弟兄总是我已经安装了某某软件包,却没有某个指令。其实就是环境变量设置的事。如果您直接输入某个指令不存在,解决办法有两个,一个方法是要指定用可执行文件的绝对路径(也可以是相对路径,怎么方便怎么用吧),另一个方法是设定用户的环境变量。

我们可以用export PATH来设置环境变量。比如把下面一行加入到用户家目录下的.bashrc 或.profile文件中;

 

export PATH=".:/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin"

 

解释:您可以找出Linux文件系统中所有bin或sbin目录的的绝对路径,然后把它们用:号分割,比如上面所设置的。第一个.表示用户当前所处的目录;

添加好后,我们再运行一下source,也就是:

 

#source .bashrc

#source .profile

 

如果发现指令只有root权限才运行,这时您要用到su; 如果您用的是普通用户,可能无权查看一些文件的目录的内容,您也需要用到su来切换身份;请参考:《Linux 系统中的超级权限的控制》


9、有关目录的操作指令;

有关目录的操作,比如创建、复制、移动、删除,请参见:《Linux 文件和目录管理之显示、删除、复制、移动及改名》。也就是ls、mkdir、cp、mv、rmdir、rm 等工具的运用;


10、关于本文;

昨天我写了 《Linux 文件和目录管理之显示、删除、复制、移动及改名》,今天写了本文。任何在命令行下的操作,都不可能离开路径,就此来说,本文也算是基础篇。

在我认为写文档之前应该有一个假定,就是说锁定读者的技术水平。基于这一点,本文的“读者”应该是对Linux不太了解。

欢迎指正,谢谢~~~


11、后记;

还是接着写文件管理方面的文档。。。。 。。。。


12、参考文档;

《Linux 系统中的超级权限的控制》
《Linux 文件和目录管理之显示、删除、复制、移动及改名》


13、相关文档;

《Linux 文件和目录管理之显示、删除、复制、移动及改名》
《Linux 文件种类和文件类型简述》
《简述Linux 文件系统的目录结构》
《Linux 文件系统概述》

  • Share/Bookmark

Tags: , , , , , , , , , , , , , , , , , ,

linux下top命令参数解释

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。
top – 01:06:48 up  1:22,  1 user,  load average: 0.06, 0.60, 0.48
Tasks:  29 total,   1 running,  28 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.3% us,  1.0% sy,  0.0% ni, 98.7% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:    191272k total,   173656k used,    17616k free,    22052k buffers
Swap:   192772k total,        0k used,   192772k free,   123988k cached
   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
  1379 root      16   0  7976 2456 1980 S  0.7  1.3   0:11.03 sshd
14704 root      16   0  2128  980  796 R  0.7  0.5   0:02.72 top
     1 root      16   0  1992  632  544 S  0.0  0.3   0:00.90 init
     2 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0
     3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
统计信息区
前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:
01:06:48
当前时间
up 1:22
系统运行时间,格式为时:分
1 user
当前登录用户数
load average: 0.06, 0.60, 0.48
系统负载,即任务队列的平均长度。
三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:
Tasks: 29 total
进程总数
1 running
正在运行的进程数
28 sleeping
睡眠的进程数
0 stopped
停止的进程数
0 zombie
僵尸进程数
Cpu(s): 0.3% us
用户空间占用CPU百分比
1.0% sy
内核空间占用CPU百分比
0.0% ni
用户进程空间内改变过优先级的进程占用CPU百分比
98.7% id
空闲CPU百分比
0.0% wa
等待输入输出的CPU时间百分比
0.0% hi

0.0% si

最后两行为内存信息。内容如下:
Mem: 191272k total
物理内存总量
173656k used
使用的物理内存总量
17616k free
空闲内存总量
22052k buffers
用作内核缓存的内存量
Swap: 192772k total
交换区总量
0k used
使用的交换区总量
192772k free
空闲交换区总量
123988k cached
缓冲的交换区总量。
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
该数值即为这些内容已存在于内存中的交换区的大小。
相应的内存再次被换出时可不必再对交换区写入。
进程信息区
统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
序号
列名
含义
a
PID
进程id
b
PPID
父进程id
c
RUSER
Real user name
d
UID
进程所有者的用户id
e
USER
进程所有者的用户名
f
GROUP
进程所有者的组名
g
TTY
启动进程的终端名。不是从终端启动的进程则显示为 ?
h
PR
优先级
i
NI
nice值。负值表示高优先级,正值表示低优先级
j
P
最后使用的CPU,仅在多CPU环境下有意义
k
%CPU
上次更新到现在的CPU时间占用百分比
l
TIME
进程使用的CPU时间总计,单位秒
m
TIME+
进程使用的CPU时间总计,单位1/100秒
n
%MEM
进程使用的物理内存百分比
o
VIRT
进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p
SWAP
进程使用的虚拟内存中,被换出的大小,单位kb。
q
RES
进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r
CODE
可执行代码占用的物理内存大小,单位kb
s
DATA
可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t
SHR
共享内存大小,单位kb
u
nFLT
页面错误次数
v
nDRT
最后一次写入到现在,被修改过的页面数。
w
S
进程状态。
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
x
COMMAND
命令名/命令行
y
WCHAN
若该进程在睡眠,则显示睡眠中的系统函数名
z
Flags
任务标志,参考 sched.h
默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。
更改显示内容
通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。
o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。
按大写的 FO 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。
命令使用
1. 工具(命令)名称
top
2.工具(命令)作用
显示系统当前的进程和其他状况; top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.
3.环境设置
在Linux下使用。
4.使用方法
4.1使用格式
top [-] [d] [p] [q] [c] [C] [S] [s]  [n]
4.2参数说明
d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p 通过指定监控进程ID来仅仅监控某个进程的状态。
q该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
S 指定累计模式
s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
i  使top不显示任何闲置或者僵死进程。
c  显示整个命令行而不只是显示命令名
4.3其他
  下面介绍在top命令执行过程中可以使用的一些交互命令。从使用角度来看,熟练的掌握这些命令比掌握选项还重要一些。这些命令都是单字母的,如果在命令行选项中使用了s选项,则可能其中一些命令会被屏蔽掉。
  Ctrl+L 擦除并且重写屏幕。
  h或者? 显示帮助画面,给出一些简短的命令总结说明。
  k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
  i 忽略闲置和僵死进程。这是一个开关式命令。
  q 退出程序。
  r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
  S 切换到累计模式。
  s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。
  f或者F 从当前显示中添加或者删除项目。
  o或者O 改变显示项目的顺序。
  l 切换显示平均负载和启动时间信息。
  m 切换显示内存信息。
  t 切换显示进程和CPU状态信息。
  c 切换显示命令名称和完整命令行。
  M 根据驻留内存大小进行排序。
  P 根据CPU使用百分比大小进行排序。
  T 根据时间/累计时间进行排序。
    W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

  • Share/Bookmark

Tags: , , , , , , , , , , , , , , ,

Linux用户管理(涉及命令及配置文件)

一、用户管理概念
1.用户管理的范围
用户帐号管理
组帐号管理
用户/组帐号的权限管理
用户帐号的环境设置
2.Linux系统用户管理特点
多用户平台(ALT+F1–12)
单用户模式中无需用户
管理方法有两种:命令、图形工具、
二、用户帐号的管理
1.用户帐号的分类
超级用户(UID=0):具有一切系统操作权限
普通用户(UID=500—MAXUID默认值60000):操作权限受到限制
伪用户(UID=1—499):限制了本机登录(只用于远程登录,建立用户时不会建立本地用户配置文件)
注:用户的UID的取值,除0以外,其它值不允许用户取相同的值
2.用户帐号包含的信息
用户名:用户的字符
口令:
UID:用户唯一标识符
GID:用户组的唯一标识符
所属组
用户主目录:用户登录的初始目录
SHELL类型:设置SHELL程序的种类
3.用户数据文件
(1)/etc/passwd
功能:存放系统的用户帐号信息
内容:用户名  密码 UID GID 所属组 用户主目录 SHELL
实例: u1 : x : 0 : 0 : u1     /home/u1 :/bin/bash
 注:如果采用了shadow,此处存放口令的为屏蔽字符,真正密码保存在/etc/shadow中
   如果不采用shadow,采用明文件显示,如果采用md5加密的话所存放的为密文
(2)/etc/shadow
功能:存放用户口令(加密过的口令)
实例: u1 : bq$# : 10750: 0: 999 :7 : -1 :-1 : 12546
说明: u1 用户名
         b1$# 加密的口令  
        10750 从1970.1.1开始计算,该口令修改后已过去了多少天
         0    需要再过多少天这个口令可以被修改
9999 密码的有效期
7 口令失效多少天前发出警告
-1 口令失效多少天之后禁用这个账户
-1 口令从1970.1.1计算,该口令已经禁用了多少天
12546 保留
4.用户管理的工具
(1)命令工具
1)建立用户
格式:useradd [参数] 用户名
参数:-u UID:指定用户的UID值
-g 组名:指定用户的所属组
-G 组名:指定用户附加组
-d 路径:指定用户主目录
-e 时间:指定用户有效日期
-s SHELL:指定SHELL的类型
-m :建立用户主目录
-M :不建立用户主目录
-r :建立一个伪用户
实例:1)# useradd u2
2)# useradd -g g2 u2
3)# useradd -e 03/28/04 –g g3 -d /etc/ u3
2)删除用户
格式:userdel [参数] 用户名
参数:-r : 删除用户主目录
实例:1)# userdel u2
2)# userdel u3
3)设置用户口令
格式:passwd [用户名]
实例:#passwd u2
4)修改用户信息
格式:usermod [参数] 用户名
参数:-l 新的用户名:修改用户主目录
-d 路径:修改用户主目录
-G 组名:修改附加组
实例:1)# usermod -d / u3
2)# usermod -G u2 u3
3)# usermod -l user3 u3
(2)手工修改数据库文件
# vi 文件名
(3)图形工具
RH 7.3以前版:Linuxconf
RH 8.0/9.0:redhat—config—user
(4)X-Windows
用户管理器
三、组帐号管理
1.组的分类
私用组:只能包含一个用户(由创建用户的自动创建)
标准组:可以包含多个用户
2.组的信息
组名:组的标识符号
GID:组的唯一标识符
口令
组的成员
3.组的管理文件
/etc/group
功能:存放系统组信息
内容: g1: x : 500 :u1,u2,u3
4.组帐号的管理工具
(1)命令
1)建立组
格式:groupadd [参数] 组名
参数:-g GID :指定GID的值
-r :建立伪用户组(1–499)
实例:1)# groupadd g2
2)# groupadd –r g3
2)删除组
格式:guoupdel 组名
实例:guoupdel G3
3)修改组的信息
格式:groupmod [参数] 组名
参数:-n 新组名:修改组的GID
-g GID:修改组的GID
实例:1)# groudmod -n group g1
2)# groupmod -g 860 u1,u2
4)添加/删除组成员
格式:gpasswd [参数] 组名
参数:-a 用户名 : 向指定组添加用户
-d 用户名 : 从指定组中删除用户
实例:1)#gpasswd -a u1 root
2)#gpasswd -d u1 root
5)显示用户所属组
格式:groups [用户名]
实例:1)#groups (显示当前用户所属组)
2)#groups root (显示root用户的所属组)
(2) 图形工具/X-WINDOWS
四.权限管理
1.文件权限
定义:是一种限制用户对文件操作的符号
分类:读:r或4
写: w或2
执行:x或1
2.权限设置的方法
(1)chmod
功能:设置用户的文件操作权限
格式:chmod [参数]<权限值><文件名>
参数:-c:只有在文件权限发生改变时才显示详细说明
-v:显示详细说明
-R:递归改变目录的权限
说明:权限值的表示方法
A 、8进制数字表示
r :4 w :2 x : 1 rw :6 rwx : 7 wx : 5 rx : 5
0:代表没有权限
实例:# chmod 754 /etc/grub.conf
B、字符表示方法:
r–:只读 rw-:读写 rwx :读写执行 -w-:写 -wx:写和执行
–x:执行 r-x :读和执行 —:无权限
C、增加或减少权限值
用户符号:u:拥有者
g:拥有者同组用户
o:其它用户
a:所有用户
实例:1)# chmod u+x file1
2)# chmod u-x,0+rw- file2
(2) chown
功能:改变文件拥有者
格式:chown [参数]<用户名><文件名>
参数:-R:递归改变目录的拥有者
-f:不显示拥有者的详细信息
实例:1)# chown user f1
2)# chown -R user1 /d1
(3)umask
功能:设置权限掩码(决定新建文件的权限)
格式:umask 权限值(超级用户默认为022,普通用户默认为002)
实例:# umask 044
计算公式:目录:777-umask

  • Share/Bookmark

Tags: , , , , , , , , , , , ,

Nginx的UrlRewrite配置

Nginx的Rewrite
经过网上查阅和测试,发现Nginx的Rewrite规则和Apache的Rewite规则差别不是很大,几乎可以直接使用。比如在Apache中这样写规则
rewriterule ^/([0-9]{5}).html$ /viewthread.php?tid=$1 last;
而在Nginx中写成这样写是无法启动的,解决的办法是加上两个双引号:
rewrite “^/([0-9]{5}).html$” /viewthread.php?tid=$1 last;
同时将RewriteRule为Rewrite,基本就实现了Nginx的Rewrite规则到Apache的Rewite规则的转换。

Rewrite的Flags
last – 基本上都用这个Flag。
break – 中止Rewirte,不在继续匹配
redirect – 返回临时重定向的HTTP状态302
permanent – 返回永久重定向的HTTP状态301

官方文档请点击这里,

http://wiki.codemongers.com/NginxHttpRewriteModule

另外如果对于302,301这些状态有疑问的,可以参考
《301 Redirect 永久重定向的实现》
http://www.ccvita.com/85.html
如果需要对Nginx配置防盗链的话,可以参考
《Nginx的防盗链配置》
http://www.ccvita.com/312.html

Discuz!在Nginx下的Rewrite
需要说明的是,下网上以前一直流传的Rewrite都是有误的。
下面的Rewrite中百分号前面多了个转移字符“\”,这在Apache中是需要的,而在Nginx中则是不需要的。
rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /viewthread.php?tid=$1&extra=page\%3D$3&page=$2 last;
正确的应该是
rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
这个错误在基本上目前所有使用Nginx作为服务器,并且开启了Rewrite的网站上存在。包括Discuz!官方,目前已经给cnteacher反馈了。

完整正确的Discuz!在Nginx下的Rewrite如下:
rewrite ^/archiver/((fid|tid)-[\w\-]+\.html)$ /archiver/index.php?$1 last;
rewrite ^/forum-([0-9]+)-([0-9]+)\.html$ /forumdisplay.php?fid=$1&page=$2 last;
rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
rewrite ^/space-(username|uid)-(.+)\.html$ /space.php?$1=$2 last;
rewrite ^/tag-(.+)\.html$ /tag.php?name=$1 last;
break;

  • Share/Bookmark

Tags: , , , , , , , , , , , , , , ,

linux(centos)系统修改用户UID,GID

以root用户登陆

输入vipw,编辑/etc/passwd文件,修改id值

输入vigr,编辑/etc/group文件,修改id值

重新登陆,即可看到生效

这里需修改文件所有者,因为文件属性是由id值决定的

输入chown -R user:user /file 更改相应文件夹所有权为相应的用户和组

  • Share/Bookmark

Tags: , , , , , , , ,

linux 用户配置文件——/etc/passwd,/etc/shadow,/etc/group

●        /etc/passwd

与用户相关的系统配置文件主要有/etc/passwd 和/etc/shadow,其中/etc/shadow是用户资讯的加密文件,比如用户的密码口令的加密保存等;/etc/passwd 和/etc/shadow 文件是互补的。/etc/passwd 的内容简介:

在/etc/passwd 中,每一行都表示的是一个用户的信息;一行有7个段位;每个段位用:号分割

第一字段:用户名(也被称为登录名);

第二字段:口令;其实密码已被映射到/etc/shadow 文件中;

第三字段:UID ,用户ID;

第四字段:GID,组ID;

第五字段:用户名全称,这是可选的;

第六字段:用户的家目录所在位置;

第七字段:用户所用SHELL 的类型;

●        /etc/shadow

/etc/shadow文件是/etc/passwd 的影子文件,这个文件并不由/etc/passwd 而产生的,这两个文件是应该是对应互补的;shadow内容包括用户及被加密的密码以及其它/etc/passwd 不能包括的信息,比如用户的有效期限等;这个文件只有root权限可以读取和操作,权限如下:

# ls -l /etc/shadow

-r——– 1 root root 1256 08-08 05:01 /etc/shadow

/etc/shadow 的权限不能随便改为其它用户可读,这样做是危险的。如果您发现这个文件的权限变成了其它用户组或用户可读了,要进行检查,以防系统安全问题的发生。

/etc/shadow 的内容分析;

/etc/shadow 文件的内容包括9个段位,每个段位之间用:号分割;

第一字段:用户名(也被称为登录名),在/etc/shadow中,用户名和/etc/passwd 是相同的,这样就把passwd 和shadow中用的用户记录联系在一起;这个字段是非空的;
第二字段:密码(已被加密),这个字段是非空的;
第三字段:上次修改口令的时间;这个时间是从1970年01月01日算起到最近一次修改口令的时间间隔(天数),您可以通过passwd 来修改用户的密码,然后查看/etc/shadow中此字段的变化;
第四字段:两次修改口令间隔最少的天数;如果这个字段的值为空,帐号永久可用;

第五字段:两次修改口令间隔最多的天数;如果这个字段的值为空,帐号永久可用;

第六字段:提前多少天警告用户口令将过期;如果这个字段的值为空,帐号永久可用;

第七字段:在口令过期之后多少天禁用此用户;如果这个字段的值为空,帐号永久可用;

第八字段:用户过期日期;此字段指定了用户作废的天数(从1970年的1月1日开始的天数),如果这个字段的值为空,帐号永久可用;
第九字段:保留字段,目前为空,以备将来发展之用; 

●      /etc/group 简介

/etc/group 文件是用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用户组的用户之间具有相似的特征。比如我们把某一用户加入到root用户组,那么这个用户就可以浏览root用户家目录的文件,如果root用户把某个文件的读写执行权限开放,root用户组的所有用户都可以修改此文件,如果是可执行的文件(比如脚本),root用户组的用户也是可以执行的;用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进去,

●        理解/etc/group 内容

/etc/group 的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录;格式如下:

group_name:passwd:GID:user_list

在/etc/group 中的每条记录分四个字段:

第一字段:用户组名称;

第二字段:用户组密码;

第三字段:GID

第四字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名;

  • Share/Bookmark

Tags: , , , , , ,