Linux中root账号和普通账号有啥区别,root账号为啥不能删除?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux中root账号和普通账号有啥区别,root账号为啥不能删除?相关的知识,希望对你有一定的参考价值。
通常情况下,Linux系统安装完毕之后,系统会自动创建一个特权帐户,即root。如需要在Linux操作系统上部署其他应用的时候,笔者建议大家重新创建一个帐户。如要在Linux操作系统上部署邮箱服务器的话,那么最好建立一个mail的帐户。然后利用这个帐户登陆系统,再进行相关的操作。这个绝对不是多次一举。这主要是因为root帐户与普通的帐户具有很大的差异。这主要体现在以下几个方面。一、磁盘空间上的限制。
通常情况下,root帐户对于操作系统具有最高的权限,其往往没有磁盘空间的限制。即使对其他用户设置了磁盘限额,而往往root帐户不会受到这方面的限制。而普通用户的话,其默认情况下只能够对自己的主目录有存储文件的权限。为此可以通过磁盘限额等手段来限制其磁盘空间的大小。在有些情况下,实现这个磁盘空间的限制是非常重要的。
因为Linux操作系统是一个多用户的操作系统。有可能会在同一个Linux操作系统上同时部署多个应用服务。如可能会同时部署邮件服务器与文件服务器。而他们是分别采用两个不同的帐户名来部署的。那么系统管理员就可以分别为他们设置磁盘限额,防止因为某个应用由于病毒等原因侵蚀了所有硬盘空间,而导致另外一个服务也当机了。如果两个服务都用root帐户部署,或者其中一个服务采用root帐户运行的话,就不能够对其进行磁盘空间限制了。如对邮件服务器使用root帐户部署,万一邮件服务器中了病毒(或者某些客户端有病毒)而狂发垃圾邮件的话,则很有可能在系统管理未发觉之前,这个硬盘的空间就被消耗殆尽了。从而导致服务器的崩溃。而如果采用了分帐号部署的话,那么最多只是邮箱服务器崩溃,而不会影响文件服务器与root帐户的运行,还有挽救的余地。
所以,无论在Linux操作系统上部署多少应用,最好都能够把root 帐户与普通帐户分开来。Root帐户一般情况下只用来做管理,而不用作他用。只有如此,才能够实现磁盘限额。
二、保证相对独立的环境变量。
Linux操作系统跟Windows操作系统类似,环境变量分为用户环境变量与通用环境变量。用户环境变量就只对当前的用户有效;而通用环境变量则对整个操作系统中的用户有效。有时候在部署网络应用,需要让各个环境变量相对的独立。在某个用户下创建的环境变量(用户环境变量),到另外一个帐户那边,就是无效的。为此就可以通过创建多个帐户来保证不同帐户之间环境变量的独立性。如在Linux操作系统中需要部署一个ERP应用,其有数据库服务器与ERP应用服务器两个部分组成,这连个部分是相互独立、又相互联系的两个部分。系统管理员往往会分别设置两个普通的帐户来部署这两个应用。通过这个方法,可以为每个应用分别保存个人的环境变量。从而让多个应用部署在同一台计算机上时,可以相对独立的工作,彼此之间不会相互干扰。
如果把这些应用都部署在同一个帐户下,那么就需要设置很多的环境变量。此时都在一个帐户下进行设置的话,很可能出错,而且也有可能相互冲突。为此为了给某些应用创造一个相对独立的工作环境,笔者建议不要用root帐户在部署这些应用。而且最好为每个应用创建一个普通帐户来管理,以保障环境变量的独立性。
三、方便备份用户的文件。
Root帐户与普通帐户的主目录是不同的。特权用户root其主目录是/root,而普通用户的主目录则为/home/帐号名称。Linux操作系统的这个设置非常的有用。如现在Linux操作系统上有两个用户,一个是特权用户,一个是普通的员工。通常情况下,普通帐户只能够把自己的文件、邮件等等保存在自己的主目录中。那么只需要对这个员工帐户的主目录进行备份,就可以备份用户的私有文件。通过备份用户的主目录,即使当操作系统瘫痪或者员工换电脑时,只需要恢复主目录中的文件,那么就可以还用户一个一模一样的工作环境。为此,把特权用户的目录与普通用户的目录分开设置就变得非常的有用。
另外,各个用户下的主目录也是相对独立的。如在系统中创建了A与B两个普通帐户。则在操作系统根目录下的/home/目录下就会有A与B两个目录。此时默认情况下,用户A只对目录A具有操纵的权限;而用户B也只有对目录B具有操作的权限。也就是说,各个帐户都只能够操作各自目录下的文件。为此,当多个用户共享同一台主机的时候,每个用户就都有一个私人的文件夹,从而可以防止自己的文件被别人无意中修改或则删除。
那如果当某个员工离职了,或则遗忘了密码,那么这个员工的文件就无法阅读了吗?这不是会给企业造成很大的损失吗?其实不然。因为特权用户root具有无与伦比的权限,为此root 帐户可以访问与修改任何普通帐户的主目录。也就是说,如果某个员工离职了,而其代理人需要这个员工主目录下的文件,则系统管理员仍然可以凭root帐户登陆系统,并把相关的文件复制给其代理人。从这里也可以看出,root帐户其权限是非常庞大的。默认情况下,最好把root帐户与普通的帐户分开来。以保障各个用户之间能够有一个相对独立的个人主目录。
四、文件相关权限不同。
通常情况下,只有文件的所有者可以更改文件的权限。如用户A(普通帐户)其建立另一个文件,其可以设置其它用户是否对这个文件具有读取、或者修改的权利。因为用户A是这个文件的所有者,所以其有权进行这方面的设置。这是Linux操作系统中权限控制的最基本原则。但是root特权用户会打破这个规则。默认情况下,root帐户可以读取、修改系统中的所有文件以及目录,并可修改所有文件的权限。也就是说,root帐户对文件以及目录进行操作,使不受到所有权这个条件的限制的。即使root帐户不是文件的所有者,其也可以把某些权限授权给其它用户。
为此在日常工作中,系统管理员应该限制其它普通用户使用这个账号。俗话说,害人之心不可有,防人之心不可无。如果一些对公司怀有不满的员工,利用root帐号去查看自己无权查看的文件,或者进行修改、删除等等操作,那么就可能会造成比较大的损失。因为root帐户可以对任何用户的文件进行类似的操作。所以在日常工作中,系统管理员要管理好root帐户的口令,不能够泄露。同时在给员工分配帐户的时候,也不要为了省心,而直接把root帐户交给员工使用。不不仅不会省心,而且还会让系统管理员更加的烦心。
总之,root 帐户与普通帐户是两个根本不同的帐户。或者说,root帐户本来就是为管理员而专门设立的,而不是为普通用户所创建。为此笔者强烈建议,无论出于什么目的,最好为Linux操作系统设置独立的普通用户。即使是系统管理员在使用Linux操作系统,也最好为其建立一个普通帐户。当他们需要管理员的权利时,可以非常方便的通过su命令转换到特权模式下。另外就是尽量为不同的员工、不同的应用设置不同的帐户。通过不同的帐户给他们提供一个相对独立的工作环境,减少相互之间的干扰。这可以说是Linux操作系统部署中一个约定俗成的原则。 转载: http://www.enet.com.cn/article/2009/1218/A20091218588661.shtml 硅谷动力 参考技术A
root用户是系统中唯一的超级管理员,它具有等同于操作系统的权限。
一些需要root权限的应用,譬如广告阻挡,是需要root权限的。
root比windows的系统管理员的能力更大,足以把整个系统的大部分文件删掉,导致系统完全毁坏,不能再次使用。
用root进行不当的操作是相当危险的,轻微的可以死机,严重的甚至不能开机。
在Unix、Linux及android中,除非确实需要,一般情况下都不推荐使用root,最好单独建立一个普通的用户,作为日常之用。
另外,root账号是可以删除的,步骤如下:
为了安全起见,首先建立一个root权限的新账户(例如baidu);
vi /etc/passwd 和 /etc/shadow 里面把 root 所在行删了即可
Linux系统中用户用户账号的创建和文件及目录的权限修改
Linux系统中用户用户账号的创建和文件及目录的权限修改
一.用户账号和组账号的分类
1.用户账号
超级用户
root,有且只有一个,拥有所有权限 UID为0
普通用户
root创建的,权限受限 UID为 1000-
程序用户
只能对程序进行管理,只能管理程序。 运行程序的时候用到 UID为1-999
2.组账号
基本组
随着账户的创建而创建,一个账号只有一个基本组。但可以加入多个公共组
附加组
为了实现某一项目而划分的组,同时存在多个账户
UID:有且只有一个,用其表示其本身
GID:创建一个组的时候就有
二.用户账号文件/etc/passwd
保存用户名称,宿主目录,登录Shell等基本信息
第一个字段:账号名
第二个字段:x 密码占位符
第三个字段:UID 身份标识
第四个字段: GID 基本组的ID,每个用户创建时会有基本组
第五个字段:描述性信息
第六个字段:家目录
第七个字段:登录shell shell环境 如shell sbin/nologin 表示不能登录系统
这个文件 只能root 更改 密码信息存放在/etc/shadow中
第一个字段:账号信息
第二个字段:密码信息
第三个字段:最近修改密码的时间 (1970.1.1 是Linux系统的诞生日)
第四个字段:密码可以修改的最短时间(如设置10,表示10天之内不可以修改密码)
第五个字段:这么多天之后必须更改密码
第六个字段:账号失效前几天开始警告
第七个字段:账号失效的缓冲时间
第八个字段:账号的失效时间,哪一天开始失效
第九个字段:保留字段
*代表不能登录系统 !!有不可以登录系统,还有没有设置过密码
三.useradd添加用户详解
1、作用
useradd或adduser命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。
2、格式
useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name
3、主要参数
-c:加上备注文字,备注文字保存在passwd的备注栏中。
-d:指定用户登入时的主目录,替换系统默认值/home/<用户名>
-D:变更预设值。
-e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。
-f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.
-g:指定用户所属的群组。值可以是组名也可以是GID。用户组必须已经存在的
-G:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-r:删除时表示把带有目录一起删除。
-s:指定用户登入后所使用的shell。默认值为/bin/bash。
-u:指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该值必须大于499。
useradd liu 创立liu用户账号
tail -1 /etc/passwd 查看是否已创建 默认家目录为home 默认shell环境可以登录 /bin/bash
userdel liu 删除时家目录还在
userdel -r liu 连同家目录一起删除
useradd -u 1005 liu 创建时指定UID 不指定UID/GID是生成一对相同的
useradd -g 1005 liu 创建时指定GID
useradd -d /opt/zhang zhang 指定家目录
useradd -s /sbin/nologin w 设置登录shell 不能登录系统
useradd -e 2021-06-16 w1 设置失效时间
date -d "1970-01-01 18763days" 从1970年经过187063是哪一天
useradd -M a 创建的时候不指定家目录,临时用一下
useradd -e 2021-10-31 -s /sbin/nologin -d /opt/san san
passwd aa 创建密码
passwd 修改 当前登陆用户的密码
echo "654321" | passwd --stdin aa 用echo 的方式给aa改密码
--stdin 表示标准输入
passwd -l w1 锁定用户 //能切换不能登录
passwd -S w1 查看用户状态 // -1代表永不失效 lk为锁定 pS为正常用户
passwd -u w1 解锁
passwd -d w1 清除用户的密码 无密码登录 // 状态为NP
usermod -L w1 锁定用户
usermod -U w1 解锁
usermod -d /bin/liu liu 用户的新主目录
4、说明
useradd可用来建立用户账号,它和adduser命令是相同的。账号建好之后,再用passwd设定账号的密码。使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中。
四.组账号文件
与用户账号文件相类似
/etc/group:保存组账号基本信息
/etc/gshadow:保存组账号的密码信息
groupadd z11 创建一个组
groupadd -g z11 创建组的时候给它一个GID
groupdel z11 删除
gpasswd -a a2 z11 将a2用户加入在在z11组中
gpasswd -M a1,w1 z11 讲多个用户加入到组中(相当于重新定义,之前的成员会没有)
groups a1 查看属于哪个组 id a1
id lisi 看系统里面有没有lisi
id -u a1 显示UID
id -g a1 显示GID 基本组 id -G 公共组
gpasswd -d a1 z11 将成员删除
groupmod -n kgc_z11 z11 改组名
finger 查询用户信息(需要安装软件包)
w/who/whoami/user 查看登陆到主机的用户信息
五.文件/目录的权限和归属
●访问权限
【1】读取r:允许查看文件内容、显示目录列表
【2】写入w:允许修改文件内容,允许在目录中新建、移动删除文件或子目录
【3】可执行x:允许运行程序、切换目录归属
●归属(所有权)
属主:拥有该文件或目录的用户帐号
属组:拥有该文件或目录的组帐号
读:r 数字代表:4
写:w 数字代表:2
执行权限:x 数字代表1
表示:xxx-xxx-xxx 前3位表示属主权限 中间三位表示属组权限 最后三位表示其他人权限
权限的问题要上下都要考虑才能实现某一功能
ll 参看文件权限
chmod o=rwx a1 将a1的其他人其他人权限设置为满权限 // 属主用u表示,属组用g表示
chmode o-x a1 在a1其他人权限中去掉可执行权限 //增加权限是用 +
chmod 747 a1 权限用数字表式
chmod o-x,u-x a1 同时对属主和其他人做减权限
[root@localhost home]# chmod -R 777 . 给所有权限
chown root a1 将a1的属主改成root
chgrp root a1 将a1的属组改成root chown :root a1
chown root:root a1 属主和属组一起改 chown a1.root a1 //中间一个冒号和一个点都可以 chown .a1 a1 只改属组一个 a1下面的属性或目录没有改
chown -R root:root a1/ 将a下面的文件或目录属主和属组全部改成root
关于umake,目录权限和文件权限
默认数值为:022
目录默认最大权限:777-022=755
文件最大权限: 666-022=644
一般不改变umake 值
权限掩码umas
●kumask作用
控制新建的文件或者目录的权限
默认权限去除umask的权限为新建的文件或者目录的权
●umask设置:umask 022
●umask查看: umask
)
以上是关于Linux中root账号和普通账号有啥区别,root账号为啥不能删除?的主要内容,如果未能解决你的问题,请参考以下文章