创建和删除用户
创建用户
useradd <username>
useradd参数:
- -d <home_dir> 设置用户的主目录
useradd <username> -d /home/<user's home>
设置用户密码
passwd <username>
比如:
$ passwd hadoop
Changing password for hadoop.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
添加用户的另一种方法(对于新手)
apt-get adduser #安装辅助函数
这种方法会自动为用户创建主目录以及默认的组,SHELL等。
adduser <username>
删除用户
userdel <username>
注意的是,上面这种方法只用删除用户账户,不删除相应的文件和主目录。
userdel -r <username> #删除用户以其相关的文件和主目录目录
理解Sudo
root是超级用户,可以在系统中做任何操作。如果把root权限开放,很有可能因为操作不当或者其他原因,给系统造成毁灭性的损失。sudo可以让用户不登陆root的情况下拥有管理权限。比如:
sudo apt-get install <package>
为了使用户拥有sudo权限需要将用户加入sudoers文件。由于这个文件比较重要,不应该对其进行直接编辑。如果编辑不当会导致无法登陆系统。因此应该用visudo命令间接对其进行编辑。在命令行,使用root登陆,然后输入visudo。
以下是拥有sudo权限的用户:
# User privilege specification
root ALL=(ALL:ALL) ALL
hadoop ALL=(ALL:ALL) ALL
可以通过修改这个文件,把用户添加到sudo组。修改完成后退出root,登陆用户,通过以下指令查看是否有sudo权限。
sudo visudo
组
Linux通过组来管理用户。我们可以通过/etc/group文件查看组和组员。每个用户都有一个默认的组。当成员创建文件或者运行程序,组内其他成员也会和这个文件(或程序)产生联系。当用户在其他组内执行程序或者新建文件时,需要切换当前的组别。例如:
$ newgrp <marketing>
当成员切换当前组别后,创建的文件和当前组别有关,而与用户的默认组无关。用户可以通过以下命令更换默认组。
$ chgrp <newgroup>
创建和删除文件夹
创建文件夹
mkdir <directory name>
创建文件夹并且进行权限设置可以通过以下指令
mkdir -m a=rwx <directory name>
- -m 是指短模式
- a=rwx 意味着所有用户有此文件夹的读写执行权限
删除文件
rm <file>
删除文件夹(递归删除)
rm <directory name>
更改文件或文件夹的权限
输入ls -al可以查看文件或文件夹的权限,-a可以显示隐藏文件,-l可以显示较长的权限信息。输出如下:
drwxr-xr-x 17 shijia shijia 4096 10月 16 15:51 .
drwxr-xr-x 5 root root 4096 10月 16 11:45 ..
-rw------- 1 shijia shijia 3256 10月 16 17:23 .bash_history
-rw-r--r-- 1 shijia shijia 220 10月 15 16:31 .bash_logout
-rw-r--r-- 1 shijia shijia 3771 10月 15 16:31 .bashrc
第一列显示文件或文件夹的权限,第二列显示文件夹下的文件个数,接下来显示文件的所有者、所属组、文件大小、日期和最后一次访问时间,以及最后一列文件名(或文件夹名)。
注:因为文件夹也属于文件的一种,它的大小显示恒为4096,这与文件夹内的内容没有关系。
chmod命令
chmod命令用于改变文件或文件夹的权限。
符号 | 权限 |
---|---|
r | 读 |
w | 写 |
x | 执行 |
X | 执行(仅适用于文件夹) |
u | 文件所有者权限 |
g | 组内成员的权限 |
o | 其他组成员权限 |
注:-意味着权限被去掉,如r-代表只读。+代表赋予权限,如chmod u+r,g+x <filename>
命令将读权限赋予用户,将执行权限赋予组。
chmod命令八进制格式
使用八进制格式时,需要给文件或文件夹的不同部分(所有者,同组用户,其他成员)分别计算。用0-7表示不同权限。如下表:chmod的两种表示方式:
样本语法:
chmod <octal or letters> <file/directory name>
字符格式:chmod go-rwx Work #拒绝本组和其他组用户访问Work文件
例子:
在当前文件夹下执行ls -al显示如下:
dr-------- 2 user user 4096 Dec 17 14:38 Work
执行chmod 444 Work
操作后显示如下:
dr--r--r-- 2 user user 4096 Dec 17 14:38 Work
更换文件的拥有者
一般来说,文件属于文件的创建者和创建者的分组。如需更换所有者,需要用到chmod
的chown user:group /path/to/file
格式。下面的操作要把list.html文件的所有者更换为marketing组的hadoop用户:
chown hadoop:marketing list.html
更改文件夹所有者的操作类似,-R为递归选择符:
chown -R hadoop:marketing /srv/smb/leadership/
平衡用户和组
最好的策略是给每个用户一个登陆的账户,这样可以保护每个用户的文件而不与其他人产生冲突。如果需要更高的权限可以使用sudo命令。如果想与同组用户分享文件,可以直接通过chmod 770
或chmod 740
命令。
(掌握了一项新技能,Markdown,愉快!:)
参考文献:
Linux Users and Groups