linux/目录下文件说明

linux根文件系统 /etc/resolv.conf 文件详解


resolv.conf的关键字主要有四个,分别是:
nameserver    //定义DNS服务器的IP地址
domain       //定义本地域名
search        //定义域名的搜索列表
sortlist        //对返回的域名进行排序
下面我们给出一个/etc/resolv.conf的示例:
domain  51osos.com
search   www.51osos.com  51osos.com
nameserver 202.102.192.68
nameserver 202.102.192.69
最主要是nameserver关键字,如果没指定nameserver就找不到DNS服务器,其它关键字是可选的。
nameserver表示解析域名时使用该地址指定的主机为域名服务器。其中域名服务器是按照文件中出现的顺序来查询的,且只有当第一个nameserver没有反应时才查询下面的nameserver。
domain    声明主机的域名。很多程序用到它,如邮件系统;当为没有域名的主机进行DNS查询时,也要用到。如果没有域名,主机名将被使用,删除所有在第一个点( .)前面的内容。
search    它的多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由search声明的域中分别查找。
domain和search不能共存;如果同时存在,后面出现的将会被使用。

sortlist  允许将得到域名结果进行特定的排序。它的参数为网络/掩码对,允许任意的排列顺序。

 

linux根文件系统/etc/mdev.conf文件详解

mdev是busybox下的udev的精简版,适合在嵌入式系统下管理设备

但mdev会把所有的设备文件都动态地创建在/dev/目录下,如果程序使用dev目录子目录下的设备,就必须修改程序,比较麻烦,当然也可以在mdev运行之后,手工创建子目录,然后再用 ln -s 做设备文件的软链接

这里有人作出了更好的脚本处理机制:

http://lists.busybox.net/pipermail/busybox/2007-May/027309.html

再贴上mdev的使用说明


-------------------------------------------

MDEV 入门(转)

Busybox-1.7.0/docs/mdev.txt
翻译:tekkamanninja Email: - 1 -

-------------
MDEV Primer
MDEV 入门
-------------
For those of us who know how to use mdev, a primer might seem lame. For
这份文档对于那些知道如何使用 mdev 的人看来可能有些肤浅。
everyone else, mdev is a weird black box that they hear is awesome, but can't
但对于其他人,mdev 可能是一个神秘的黑匣子,以至让人敬畏。
seem to get their head around how it works. Thus, a primer.
而这份文档又不足以让他们知道mdev 是如何工作的。 因此,这是一份入门文档。
-----------
Basic Use
基本使用方法
-----------
Mdev has two primary uses: initial population and dynamic updates. Both
mdev 有两个主要的应用:初始化对象和动态更新。
require sysfs support in the kernel and have it mounted at /sys. For dynamic
两个应用都需要内核 sysfs 的支持,且必须挂载到 /sys 。为了实现动态更新,
updates, you also need to have hotplugging enabled in your kernel.
你还必须在内核配置时增加热插拔支持(hotplugging)。
Here's a typical code snippet from the init script:
以下是系统初始化脚本中一个典型的使用mdev 的代码片段:
    [1] mount -t sysfs sysfs /sys
    [2] echo /bin/mdev > /proc/sys/kernel/hotplug
    [3] mdev -s

Of course, a more "full" setup would entail executing this before the previous
当然,一个对mdev 更完整的安装还必须在以上代码片段前执行下面的命令:
code snippet:
    [4] mount -t tmpfs mdev /dev
    [5] mkdir /dev/pts
    [6] mount -t devpts devpts /dev/pts

The simple explanation here is that [1] you need to have /sys mounted before
简单说明一下上面的代码:[1]你必须在执行mdev 前挂载 /sys 。
executing mdev. Then you [2] instruct the kernel to execute /bin/mdev whenever
随后你 [2] 命令内核在增删设备时执行 /bin/mdev ,
a device is added or removed so that the device node can be created or
使设备节点文件会被创建和删除。
destroyed. Then you [3] seed /dev with all the device nodes that were created
最后你 [3] 设置mdev,让它在系统启动时创建所有的设备节点。
while the system was booting.
For the "full" setup, you want to [4] make sure /dev is a tmpfs filesystem
而对mdev 更完整的安装,你必须[4]确保 /dev 是 tmpfs 文件系统
(assuming you're running out of flash). Then you want to [5] create the
(假设文件系统在 flash 外运行)。 而且你必须 [5] 创建

-------------
MDEV Config (/etc/mdev.conf)
MDEV 配置 (/etc/mdev.conf)
-------------
Mdev has an optional config file for controlling ownership/permissions of
device nodes if your system needs something more than the default root/root
660 permissions.
如果你的系统需要一些比默认的 root/root 660 更多的权限,
你可以使用 mdev 的可选配置文件,以控制设备节点的 所有者 和 权限。
The file has the format:
这个文件的格式如下:
    <device regex> <uid>:<gid> <octal permissions>
For example:
例如:
    hd[a-z][0-9]* 0:3 660
The config file parsing stops at the first matching line. If no line is
这个配置文件在第一个匹配行处停止解析。 如果没有匹配行,
matched, then the default of 0:0 660 is used. To set your own default, simply
那么就使用默认的 0:0 660 。 你也可以通过在最后创建如下的全匹配
create your own total match like so:
行,来设置你自己的默认设置:
    .* 1:1 777
If you also enable support for executing your own commands, then the file has
如果你想 mdev 在找到匹配行时可以执行自定义的命令,那么文件格式如下:
the format:
    <device regex> <uid>:<gid> <octal permissions> [<@|$|*> <command>]
The special characters have the meaning:
特殊字符的意义如下:
   @ Run after creating the device.
    @ 在创建设备节点后运行命令。
    $ Run before removing the device.
    $ 在删除设备节点前运行命令。
    * Run both after creating and before removing the device.
    * 在创建设备节点后和删除设备节点前都运行命令。
The command is executed via the system() function (which means you're giving a
这些命令是通过系统函数(system())执行的(也就是说你在对shell 下命令)
command to the shell), so make sure you have a shell installed at /bin/sh.
,所以请确保你已在 /bin/sh 安装了shell。
For your convenience, the shell env var $MDEV is set to the device name. So if
为了方便,shell 的环境变量 $MDEV 会被设置成设备名。 例如
the device 'hdc' was matched, MDEV would be set to "hdc".
mdev 解析到设备 'hdc' 匹配,MDEV 将会被设置为 "hdc"。

----------
FIRMWARE
固件
----------
Some kernel device drivers need to request firmware at runtime in order to
有些设备驱动程序在运行时,为了正确的初始化设备,需要上传固件。
properly initialize a device. Place all such firmware files into the
请将所有的固件文件放入
/lib/firmware/ directory. At runtime, the kernel will invoke mdev with the
/lib/firmware/ 目录。 在运行时,内核将会按固件文件名调用 mdev ,
filename of the firmware which mdev will load out of /lib/firmware/ and into
之后 mdev 会通过 sysfs 接口将固件从 /lib/firmware/
the kernel via the sysfs interface. The exact filename is hardcoded in the
装载到内核。 确定的文件名被固化在内核中,
kernel, so look there if you need to want to know what to name the file in
如有必要,你必须知道如何在用户空间命名这个文件。
userspace.

# cat /etc/mdev.conf

# system all-writable devices
full            0:0     0666
null            0:0     0666
ptmx            0:0     0666
random          0:0     0666
tty             0:0     0666
zero            0:0     0666

# console devices
tty[0-9]*       0:5     0660
vc/[0-9]*       0:5     0660

# serial port devices
s3c2410_serial0 0:5     0666    =ttySAC0
s3c2410_serial1 0:5     0666    =ttySAC1
s3c2410_serial2 0:5     0666    =ttySAC2
s3c2410_serial3 0:5     0666    =ttySAC3

# loop devices
loop[0-9]*      0:0     0660    =loop/

# i2c devices
i2c-0           0:0     0666    =i2c/0
i2c-1           0:0     0666    =i2c/1

# frame buffer devices
fb[0-9]         0:0     0666

# input devices
mice            0:0     0660    =input/
mouse.*         0:0     0660    =input/
event.*         0:0     0660    =input/
ts.*            0:0     0660    =input/

# rtc devices
rtc0            0:0     0644    >rtc
rtc[1-9]        0:0     0644

# misc devices
mmcblk0p1       0:0     0600    =sdcard  */bin/hotplug.sh
sda1            0:0     0600    =udisk   * /bin/hotplug.sh
vntwpa          1:1     777              * /bin/ltls.sh  //$MDEV 参数 为"usb-wifi"
vntwpa  执行脚本ltls.sh
# .*            1:1     777              * /bin/ltls.sh

1-1.*           1:1     777              * /bin/llll

[root@FriendlyARM /mnt]# cat ltls.sh
#!/bin/sh

echo $MDEV    >  /dev/ttySAC0  // 有变化的设备 会在/dev产生 相应设备 如:1-1.1 /sys 下class或block下也会变化

echo $ACTION    >  /dev/ttySAC0 // 设备状态"remove"   "add"

#echo  - n  "enter your name:"
#read name


#echo "ltls  "  > /dev/ttySACO
if [ "$MDEV" = "vntwpa" ];then
        /bin/wifi-ltls
        echo "going to vntwpa " > /dev/ttySAC0
fi

 

linux根文件系统 /etc/shadow文件详解

与Linux /etc/passwd文件不同,Linux /etc/shadow文件是只有系统管理员才有权利进行查看和修改的文件,系统管理员应该弄明白Linux /etc/shadow文件中每个字符段的相应的意义,清楚管理时的具体意义。

Linux /etc/shadow文件中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用“:”隔开。这些字段是:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
1)“登录名”是与/etc/passwd文件中的登录名相一致的用户账号
2)“口令”字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合{./0-9A-Za-z}中的字符,则对应的用户不能登录。
3)“最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCOLinux中,这个时间起点是1970年1月1日。
4)“最小时间间隔”指的是两次修改口令之间所需的最小天数。
5)“最大时间间隔”指的是口令保持有效的最大天数。
6)“警告时间”字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
7)“不活动时间”表示的是用户没有登录活动但账号仍能保持有效的最大天数。
8)“失效时间”字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。

下面是/etc/shadow的一个例子:
#cat/etc/shadow
root:Dnakfw28zf38w:8764:0:168:7:::
daemon:*::0:0::::
bin:*::0:0::::
sys:*::0:0::::
adm:*::0:0::::
uucp:*::0:0::::
nuucp:*::0:0::::
auth:*::0:0::::
cron:*::0:0::::
listen:*::0:0::::
lp:*::0:0::::
sam:EkdiSECLWPdSa:9740:0:0::


文章转自:http://os.51cto.com/art/201003/187572.htm

shadow 是 passwd 的影子文件。
在linux中,口令文件在/etc/passwd中,早期的这个文件直接存放加密后的密码,前两位是"盐"值,是一个随机数,后面跟的是加密的密码。为了安全,现在的linux都提供了 /etc/shadow这个影子文件,密码放在这个文件里面,并且是只有root可读的。
/etc/passwd文件的每个条目有7个域,分别是名字:密码:用户id:组id:用户信息:主目录:shell 
例如:ynguo:x:509:510::/home/ynguo:/bin/bash 
在利用了shadow文件的情况下,密码用一个x表示,普通用户看不到任何密码信息。影子口令文件保存加密的口令;/etc/passwd文件中的密码全部变成x。Shadow只能是root可读,从而保证了安全。
/etc/shadow文件每一行的格式如下:用户名:加密口令:上一次修改的时间(从1970年1月1日起的天数):口令在两次修改间的最小天数:口令修改之前向用户发出警告的天数:口令终止后账号被禁用的天数:从1970年1月1日起账号被禁用的天数:保留域。
例如:root:$1$t4sFPHBq$JXgSGgvkgBDD/D7FVVBBm0:11037:0:99999:7:-1:-1:1075498172
转自: http://blog.csdn.net/lrunyang/article/details/7028288
 

llinux根文件系统/etc/passwd文件详解



/etc/passwd  是存放用户的地方
1                2             3         4            5                         6                       7
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
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
用户名: 密码 : uid  : gid :用户描述:主目录:登陆shell
 
UID : 每个用户必须被分配一个userid,”0”为root保留ID.
 
1-99为系统保留,分配给系统预定义帐号.HP-UX10.20支持2 147 483 646. HP-UX10.20以前支持不大于60000个.
 
系统中有一类用户称为伪用户(psuedo users),这些用户在/etc/passwd文件中也占有一条记录,但是不能登录,因为它们的登录Shell为空。它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。常见的伪用户如表8-1所示。
  表8-1 /etc/passwd文件中常见的伪用户
linux/目录下文件说明
  除了上面列出的伪用户外,还有许多标准的伪用户,例如:audit, cron, mail, usenet等,它们也都各自为相关的进程和文件所需要。
 
/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用“:”隔开。这些字段是:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:
 
 

本文出自 “Fighting” 博客,请务必保留此出处http://fangfang0717.blog.51cto.com/236466/130699


root:x:0:0:root:/root:/bin/bash 

  bin:x:1:1:bin:/bin:/sbin/nologin 

  daemon:x:2:2:daemon:/sbin:/sbin/nologin 

  desktop:x:80:80:desktop:/var/lib/menu/kde:/sbin/nologin 

  mengqc:x:500:500:mengqc:/home/mengqc:/bin/bash 

  在该文件中,每一行用户记录的各个数据段用“:”分隔,分别定义了用户的各方面属性。各个字段的顺序和含义如下: 

  注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序 

  (1)注册名(login_name):用于区分不同的用户。在同一系统中注册名是惟一的。在很多系统上,该字段被限制在8个字符(字母或数字)的长度之内;并且要注意,通常在Linux系统中对字母大小写是敏感的。这与MSDOS/Windows是不一样的。 

  (2)口令(passwd):系统用口令来验证用户的合法性。超级用户root或某些高级用户可以使用系统命令passwd来更改系统中所有用户的口令,普通用户也可以在登录系统后使用passwd命令来更改自己的口令。 

  现在的Unix/Linux系统中,口令不再直接保存在passwd文件中,通常将passwd文件中的口令字段使用一个“x”来代替,将/etc /shadow作为真正的口令文件,用于保存包括个人口令在内的数据。当然shadow文件是不能被普通用户读取的,只有超级用户才有权读取。 

  此外,需要注意的是,如果passwd字段中的第一个字符是“*”的话,那么,就表示该账号被查封了,系统不允许持有该账号的用户登录。 

  (3)用户标识号(UID):UID是一个数值,是Linux系统中惟一的用户标识,用于区别不同的用户。在系统内部管理进程和文件保护时使用 UID字段。在Linux系统中,注册名和UID都可以用于标识用户,只不过对于系统来说UID更为重要;而对于用户来说注册名使用起来更方便。在某些特 定目的下,系统中可以存在多个拥有不同注册名、但UID相同的用户,事实上,这些使用不同注册名的用户实际上是同一个用户。 

  (4)组标识号(GID):这是当前用户的缺省工作组标识。具有相似属性的多个用户可以被分配到同一个组内,每个组都有自己的组名,且以自己的组标 识号相区分。像UID一样,用户的组标识号也存放在passwd文件中。在现代的Unix/Linux中,每个用户可以同时属于多个组。除了在 passwd文件中指定其归属的基本组之外,还在/etc/group文件中指明一个组所包含用户。 

  (5)用户名(user_name):包含有关用户的一些信息,如用户的真实姓名、办公室地址、联系电话等。在Linux系统中,mail和finger等程序利用这些信息来标识系统的用户。 

  (6)用户主目录(home_directory):该字段定义了个人用户的主目录,当用户登录后,他的Shell将把该目录作为用户的工作目录。 在Unix/Linux系统中,超级用户root的工作目录为/root;而其它个人用户在/home目录下均有自己独立的工作环境,系统在该目录下为每 个用户配置了自己的主目录。个人用户的文件都放置在各自的 

  主目录下。 

  (7)命令解释程序(Shell):Shell是当用户登录系统时运行的程序名称,通常是一个Shell程序的全路径名, 

  如/bin/bash。 

  需要注意的是,系统管理员通常没有必要直接修改passwd文件,Linux提供一些账号管理工具帮助系统管理员来创建和维护用户账号。 

  Linux口令管理之/etc/passwd文件 

  /etc/passwd文件是Linux/UNIX安全的关键文件之一.该文件用于用户登录时校验 用户的口令,当然应当仅对root可写.文件中每行的一般格式为: 

  LOGNAME:PASSWORD:UID:GID:USERINFO:HOME:SHELL 

  每行的头两项是登录名和加密后的口令,后面的两个数是UID和GID,接着的 一项是系统管理员想写入的有关该用户的任何信息,最后两项是两个路径名: 一个是分配给用户的HOME目录,第二个是用户登录后将执行的shell(若为空格则 缺省为/bin/sh). 

  (1)口令时效 

  /etc/passwd文件的格式使系统管理员能要求用户定期地改变他们的口令. 在口令文件中可以看到,有些加密后的口令有逗号,逗号后有几个字符和一个 冒号.如: 

  steve:xyDfccTrt180x,M.y8:0:0:admin:/:/bin/sh 

  restrict:pomJk109Jky41,.1:0:0:admin:/:/bin/sh 

  pat:xmotTVoyumjls:0:0:admin:/:/bin/sh 

  可以看到,steve的口令逗号后有4个字符,restrict有2个,pat没有逗号. 

  逗号后第一个字符是口令有效期的最大周数,第二个字符决定了用户再次 修改口信之前,原口令应使用的最小周数(这就防止了用户改了新口令后立刻 又改回成老口令).其余字符表明口令最新修改时间. 

  要能读懂口令中逗号后的信息,必须首先知道如何用passwd_esc计数,计 数的方法是: 

  .=0 /=1 0-9=2-11 A-Z=12-37 a-z=38-63 

  系统管理员必须将前两个字符放进/etc/passwd文件,以要求用户定期的 修改口令,另外两个字符当用户修改口令时,由passwd命令填入. 

  注意:若想让用户修改口令,可在最后一次口令被修改时,放两个".",则下 一次用户登录时将被要求修改自己的口令. 

  有两种特殊情况: 

  . 最大周数(第一个字符)小于最小周数(第二个字符),则不允许用户修改 口令,仅超级用户可以修改用户的口令. 

  . 第一个字符和第二个字符都是".",这时用户下次登录时被要求修改口 令,修改口令后,passwd命令将"."删除,此后再不会要求用户修改口令. 

  (2)UID和GID 

  /etc/passwd中UID信息很重要,系统使用UID而不是登录名区别用户.一般 来说,用户的UID应当是独一无二的,其他用户不应当有相同的UID数值.根据惯 例,从0到99的UID保留用作系统用户的UID(root,bin,uucp等). 

  如果在/etc/passwd文件中有两个不同的入口项有相同的UID,则这两个用 户对相互的文件具有相同的存取权限.

  /etc /group文件含有关于小组的信息,/etc/passwd中的每个GID在本文件中 应当有相应的入口项,入口项中列出了小组名和小组中的用户.这样可方便地了 解每个小组的用户,否则必须根据GID在/etc/passwd文件中从头至尾地寻找同组 用户. 

  /etc/group文件对小组的许可权限的控制并不是必要的,因为系统用UID,GID (取自/etc/passwd)决定文件存取权限,即使/etc/group文件不存在于系统中,具 有相同的GID用户也可以小组的存取许可权限共享文件. 

  小组就像登录用户一样可以有口令.如果/etc/group文件入口项的第二个域 为非空,则将被认为是加密口令,newgrp命令将要求用户给出口令,然后将口令加 密,再与该域的加密口令比较. 

  给 小组建立口令一般不是个好作法.第一,如果小组内共享文件,若有某人猜 着小组口令,则该组的所有用户的文件就可能泄漏;其次,管理小组口令很费事, 因为对于小组没有类似的passwd命令.可用/usr/lib/makekey生成一个口令写入 /etc/group. 

  以下情况必须建立新组: 

  (1)可能要增加新用户,该用户不属于任何一个现有的小组. 

  (2)有的用户可能时常需要独自为一个小组. 

  (3)有的用户可能有一个SGID程序,需要独自为一个小组. 

  (4)有时可能要安装运行SGID的软件系统,该软件系统需要建立一个新组. 

  要 增加一个新组,必须编辑该文件,为新组加一个入口项. 由于用户登录时,系统从/etc/passwd文件中取GID,而不是从/etc/group中 取GID,所以group文件和口令文件应当具有一致性.对于一个用户的小组,UID和 GID应当是相同的.多用户小组的GID应当不同于任何用户的UID,一般为5位数,这 样在查看/etc/passwd文件时,就可根据5位数据的GID识别多用户小组,这将减少 增加新组,新用户时可能产生的混淆. 

 

linux根文件系统/etc/group文件详解

具有某种共同特征的用户集合起来就是用户组(Group)。用户组(Group)配置文件主要有 /etc/group和/etc/gshadow,其中/etc/gshadow是/etc/group的加密信息文件;在本标题下,您还能了解到什么是GID; 
1、/etc/group 解说; 
用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进去, 
2、/etc/group 内容具体分析 
/etc/group 的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录;格式如下:

group_name:passwd:GID:user_list 
在/etc/group 中的每条记录分四个字段: 
第一字段:用户组名称; 
第二字段:用户组密码; 
第三字段:GID 
第四字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名; 
我们举个例子: 
root:x:0:root,linuxsir 注:用户组root,x是密码段,表示没有设置密码,GID是0,root用户组下包括root、linuxsir以及GID为0的其它用户(可以通过 /etc/passwd查看);;beinan:x:500:linuxsir 注:用户组beinan,x是密码段,表示没有设置密码,GID是500,beinan用户组下包括linuxsir用户及GID为500的用户(可以通 过/etc/passwd查看);linuxsir:x:502:linuxsir 注:用户组linuxsir,x是密码段,表示没有设置密码,GID是502,linuxsir用户组下包用户linuxsir及GID为502的用户 (可以通过/etc/passwd查看);helloer:x:503: 注:用户组helloer,x是密码段,表示没有设置密码,GID是503,helloer用户组下包括GID为503的用户,可以通过 /etc/passwd查看; 
而/etc/passwd 对应的相关的记录为: 
root:x:0:0:root:/root:/bin/bashbeinan:x:500:500:beinan sun:/home/beinan:/bin/bashlinuxsir:x:505:502:linuxsir

open,linuxsir office,13898667715:/home/linuxsir:/bin/bashhelloer:x:502:503::/home/helloer:/bin/bash 
由此可以看出helloer用户组包括 helloer用户;所以我们查看一个用户组所拥有的用户,可以通过对比/etc/passwd和/etc/group来得到;

Gpasswd –a username groupname 把某用户加入到某个组中

Gpasswd –d username groupname 把组中的某个用户删除

Smbpasswd –a username          在SMB中加入用户

Smbpasswd –x username          在 SMB中删除用户

一个文件 rwxrwxrwx ,前三个字段是表明文件所有者r可读w可写x可执行.中间的表明文件的所有组,后三个表明其他人. 组是用户的集合,能否操作文件要看文件的权限怎么定义.跟用户无关, 也就是说一个文件定义了用户A可以操作,不表明包含用户A的组C可以操作.这是两个无关的概念.

转自: http://blog.csdn.net/liqfyiyi/article/details/7742775


Linux /etc/group文件与/etc/passwd和/etc/shadow文件都是有关于系统管理员对用户和用户组管理时相关的文件,Linux /etc/group文件相对另外两个文件内容相对较少,这里对这一文件进行以下分析。

用户组的所有信息都存放在/etc/group文件中

将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不 同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。

用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。用户组的所有信息都存放在/etc/group文件中。此文件的格式也类似于/etc/passwd文件,由冒号(:)隔开若干个字段,这些字段有:

组名:口令:组标识号:组内用户列表
1)“组名”是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。
2)“口令”字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空,或者是*。
3)“组标识号”与用户标识号类似,也是一个整数,被系统内部用来标识组。
4)“组内用户列表”是属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。
/etc/group文件的一个例子如下:


 
  
  
  
  
  1. #cat/etc/group  
  2. root::0:root  
  3. bin::2:root,bin  
  4. sys::3:root,uucp  
  5. adm::4:root,adm  
  6. daemon::5:root,daemon  
  7. lp::7:root,lp  
  8. users::20:root,sam[/code:1:aca506e246]




 Linux之/etc/inittab文件 


init进程     init的进程号为1,是所有进程的父进程,内核初始化完毕之后,init程序开始运行。其他软件也同时开始运行。init程序通过/etc/inittab文件进行配置。inittab文件的内容如下:

引用内容:
    #     # inittab       This file describes how the INIT process should set up     #               the system in a certain run-level.     #     # Author:       Miquel van Smoorenburg, <[email protected]>     #               Modified for RHS Linux by Marc Ewing and Donnie Barnes     #                                                                                                                                   # Default runlevel. The runlevels used by RHS are:     #   0 - halt (Do NOT set initdefault to this)     #   1 - Single user mode     #   2 - Multiuser, without NFS (The same as 3, if you do not have networking)     #   3 - Full multiuser mode     #   4 - unused     #   5 - X11     #   6 - reboot (Do NOT set initdefault to this)     #          id:3:initdefault:                                                                                                                                   # System initialization.      si::sysinit:/etc/rc.d/rc.sysinit                                                                                                                                   l0:0:wait:/etc/rc.d/rc 0     l1:1:wait:/etc/rc.d/rc 1     l2:2:wait:/etc/rc.d/rc 2     l3:3:wait:/etc/rc.d/rc 3     l4:4:wait:/etc/rc.d/rc 4     l5:5:wait:/etc/rc.d/rc 5     l6:6:wait:/etc/rc.d/rc 6     # Things to run in every runlevel     ud::once:/sbin/update                                                                                                                                   # Trap CTRL-ALT-DELETE     ca::ctrlaltdel:/sbin/shutdown -t3 -r now                                                                                                                                   # When our UPS tells us power has failed, assume we have a few minutes     # of power left.  Schedule a shutdown for 2 minutes from now.     # This does, of course, assume you have powerd installed and your     # UPS connected and working correctly.     pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"                                                                                                                                   # If power was restored before the shutdown kicked in, cancel it.     pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"     # If power was restored before the shutdown kicked in, cancel it.     pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"                                                                                                                                                                                                                                                                 # Run gettys in standard runlevels     1:2345:respawn:/sbin/mingetty tty1     2:2345:respawn:/sbin/mingetty tty2     3:2345:respawn:/sbin/mingetty tty3     4:2345:respawn:/sbin/mingetty tty4     5:2345:respawn:/sbin/mingetty tty5     6:2345:respawn:/sbin/mingetty tty6                                                                                                                                  # Run xdm in runlevel 5      x:5:respawn:/etc/X11/prefdm -nodaemon
    Runlevel 0是让init关闭所有进程并终止系统。     Runlevel 1是用来将系统转到单用户模式,单用户模式只能有系统管理员进入,在该模式下处理那些在有登录用户的情况下不能进行更改的文件,改runlevel的编号1也可以用S代替。     Runlevel 2是允许系统进入多用户的模式,但并不支持文件共享,这种模式很少应用。     Runlevel 3是最常用的运行模式,主要用来提供真正的多用户模式,也是多数服务器的缺省模式。     Runlevel 4一般不被系统使用,用户可以设计自己的系统状态并将其应用到runlevel 4阶段,尽管很少使用,但使用该系统可以实现一些特定的登录请求。     Runlevel 5是将系统初始化为专用的X Window终端。对功能强大的Linux系统来说,这并不是好的选择,但用户如果需要这样,也可以通过在runlevel启动来实现该方案。     Runlevel 6是关闭所有运行的进程并重新启动系统。     在inittab文件中以#开头的所有行都是注释行。注释行有助于用户理解inittab文件,inittab文件中的值都是如下格式:     label:runlevel:action:process     label是1~4个字符的标签,用来标示输入的值。一些系统只支持2个字符的标签。鉴于此原因,多数人都将标签字符的个数限制在2个以内。该标签可以是任意字符构成的字符串,但实际上,某些特定的标签是常用的,在Red Hat Linux中使用的标签是: 代码:     id 用来定义缺省的init运行的级别     si 是系统初始化的进程     ln 其中的n从1~6,指明该进程可以使用的runlevel的级别     ud 是升级进程     ca 指明当按下Ctrl+Alt+Del是运行的进程     pf 指当UPS表明断电时运行的进程     pr 是在系统真正关闭之前,UPS发出电源恢复的信号时需要运行的进程     x  是将系统转入X终端时需要运行的进程     runlevel字段指定runlevel的级别。可以指定多个runlevel级别,也可以不为runlevel字段指定特定的值。     action字段定义了该进程应该运行在何种状态下:     代码:     boot        在系统启动时运行,忽略runlevel     bootwait    在系统启动时运行,init等待进程完成。忽略runlevel     ctrlaltdel    当Ctrl+Alt+Del三个键同时按下时运行,把SIGINT信号发送给init。忽略    runlevel     initdefault    不要执行这个进程,它用于设置默认runlevel     kbrequest    当init从键盘中收到信号时运行。这里要求键盘组合符合KeyBoardSigral(参见/usr/share/doc/kbd-*关于键盘组合的文档)     off        禁止进入,因此该进程不运行     once        每一个runlevel级别运行一次     ondemand    当系统指定特定的运行级别A、B、C时运行     powerfail    当init收到SIGPWR信号时运行     powerokwait    当收到SIGPWD信号且/etc/文件中的电源状态包含OK时运行     powerwait    当收到SIGPWD信号,并且init等待进程结束时运行     respawn        不管何时终止都重新启动进程     sysinit        在运行boot或bootwait进程之前运行     wait        运行进程等待输入运行模式     process字段包含init执行的进程,该进程采用的格式与在命令行下运行该进程的格式一样,因此process字段都以该进程的名字开头,紧跟着是运行时,紧跟着是运行时要传递给该进程的参数。比如/sbin/shutdown -t3 -r now,该进程在按下Ctrl+Alt+Del时执行,在命令行下也可以直接输入来重新启动系统。     特殊目的的记录        仔细学习例子文件,学习应用其中关于inittab的语法格式。该文件的大多数内容都可以忽略,因为超过一半的内容都是注释,剩余的一些文件内容主要是用来实现某些特殊的功能:     id 的值表明缺省的runlevel是3。     ud 的值可以唤醒/sbin/update进程,该进程为保持磁盘的完整性,将在对磁盘进行I/O操作之前清空整个I/O缓冲区。     pf、pr和ca的值只被特定的中断所调用。     如果系统是专用的X终端,则只需x的输入值。     getty进程来提供虚拟终端设备的服务,例如:     3:2345:respawn:/sbin/mingetty tty3     标签字段的值是3,3是设备tty3的数字后缀,tty3与相应的进程相关联,该getty进程可以启动的runlevel是2、3、4和5,当该进程终止时,init马上就重新启动它。启动进程的路径名是/sbin/mingetty,该进程是实现虚拟终端支持的最小版本的getty,为tty3提供启动虚拟设备的进程。     si::sysinit:/etc/rc.d/rc.sysinit     该值告诉init程序运行/etc/rc.d/rc.sysinit脚本文件来初始化系统,该脚本文件与所有启动的脚本类似,它只是一个包含Linux的 shell命令的可执行文件,注意输入的字符串必须包括该脚本的完整路径。不同版本的Linux存放该脚本的位置也不相同,但不用刻意去记忆这些位置,只需查看/etc/inittab文件即可,该文件中包含启动脚本文件的确切位置。

Linux/etc/profile文件的简单介绍

 /etc/profile是环境变量的配置文件。与环境变量相关的文件可能还会有/etc/bashrc等,不过这是shell变量,是局部的,对于特定的shell器作用。/etc/profile是全局的,适用于所有的shell.  profile文件会告诉shell使用什么语言,什么shell,命令的搜索路径等等。   一些标准的环境变量:   SHELL 默认shell   LANG 默认语言

PATHlinux寻找命令的默认路径,一般包括/bin,/usr/bin,/sbin,/usr/sbin。

  COLORTERM GUI中的默认终端,通常是gnome-terminal   USER 自动设置当前登陆用户的用户名。   LONGNAME 通常设置为$USER   MAIL 设置特定$USR的标准邮件目录   HOSTNAME 设置为/bin/hostname的命令输出   HISTSIZE 设置为history命令记住的命令数









你可能感兴趣的:(linux/目录下文件说明)