http://blog.csdn.net/pursue168/article/details/6443046

将一个用户添加到用户组中,千万不能直接用:
usermod -G groupA

这样做会使你离开其他用户组,仅仅做为 这个用户组 groupA 的成员。
应该用 加上 -a 选项:
usermod -a -G groupA user

(FC4: usermod -G groupA,groupB,groupC user)
-a 代表 append, 也就是 将自己添加到 用户组groupA 中,而不必离开 其他用户组。

命令的所有的选项,及其含义:
Options:
-c, --comment COMMENT         new value of the GECOS field
-d, --home HOME_DIR           new home directory for the user account
-e, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE
-f, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
-g, --gid GROUP               force use GROUP as new primary group
-G, --groups GROUPS           new list of supplementary GROUPS
-a, --append          append the user to the supplemental GROUPS
                                mentioned by the -G option without removing
                                him/her from other groups
-h, --help                    display this help message and exit
-l, --login NEW_LOGIN         new value of the login name
-L, --lock                    lock the user account
-m, --move-home               move contents of the home directory to the new
                                location (use only with -d)
-o, --non-unique              allow using duplicate (non-unique) UID
-p, --password PASSWORD       use encrypted password for the new password
-s, --shell SHELL             new login shell for the user account
-u, --uid UID                 new UID for the user account
-U, --unlock                  unlock the user account


查看用户所属的组使用命令:$ groups user

或者查看文件:$ cat /etc/group

1. Linux系统中用户切换的命令为su,语法为:

su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]

参数说明

-f , –fast:不必读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell。

-l , –login:加了这个参数之后,就好像是重新登陆一样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,并

且工作目录也会改变。如果没有指定USER,缺省情况是root。

-m, -p ,–preserve-environment:执行su时不改变环境变数。

-c command:变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。

–help 显示说明文件
–version 显示版本资讯

USER:欲变更的使用者账号,
ARG: 传入新的Shell参数。

2. su [user] 和 su - [user]的区别:

su [user]切换到其他用户,但是不切换环境变量,su - [user]则是完整的切换到新的用户环境。

如:

[root@rac1 ~]# pwd  --当前目录
/root
[root@rac1 ~]# su oracle --使用su [user]
[oracle@rac1 root]$ pwd  --当前目录没有改变,还是之前的用户目录
/root
[oracle@rac1 root]$ su - oracle --使用su - [user]
Password:
[oracle@rac1 ~]$ pwd   --当前目录变为当前用户的家目录
/home/oracle
[oracle@rac1 ~]$

所以建议大家在切换用户时,尽量用su - [user],否则可能会出现环境变量不对的问题。

09-28 07:08