Ubuntu
有一个与众不同的特点,那就是初次使用时,你无法作为root来登录系统,为什么会这样?这就要从系统的安装说起。对于其他Linux系统来说,一般在安
装过程就设定root密码,这样用户就能用它登录root帐户或使用su命令转换到超级用户身份。与之相反,Ubuntu默认安装时,并没有给root用
户设置口令,也没有启用root帐户。问题是要想作为root用户来运行命令该怎么办呢?没关系,我们可以使用sudo命令达此目的。
sudo是linux下常用的允许普通用户使用超级用户权限的工具,该命令为管理员提供了一种细颗粒度的访问控制方法,通过它人们既可以作为超
级用户又可以作为其它类型的用户来访问系统。这样做的好处是,管理员能够在不告诉用户root密码的前提下,授予他们某些特定类型的超级用户权限,这正是
许多系统管理员所梦寐以求的。
1.sudo的缺省配置
默认时,Ubuntu为sudo提供了一个基本的配置,该配置保存在/etc目录下的sudoers文件中。在修改该配置文件时,务必使用
visudo工具来进行编辑,因为该工具会自动对配置语法进行严格检查,如果发现错误,在保存退出时给出警告,并提示你哪段配置出错,从而确保该配置文件
的正确性。相反,如果使用其它的文本编辑程序的话,一旦出错,就会给系统带来严重的后果。下面给出的是Ubuntu默认的/etc/sudoers文件内
容:
# User privilege specification
root ALL=(ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
|
下面对以上配置做简要说明:
第一项配置的作用,是允许root用户使用sudo命令变成系统中任何其它类型的用户。第二个配置规定,管理组中的所有成员都能以root的身份执行
所有命令。因此,在默认安装的Ubuntu系统中,要想作为root身份来执行命令的话,只要在sudo后面跟上欲执行的命令即可。下面用一个例子加以说
明,如果您想执行apt-get update的话,应当在命令行中键入以下内容:
2.配置文件语法详解
接下来,我们用一个实例来详细解释/etc/sudoers文件的配置语法,请看下面的例子:
jorge ALL=(root) /usr/bin/find, /bin/rm
|
上面的第一栏规定它的适用对象:用户或组,就本例来说,它是用户jorge。此外,因为系统中的组和用户可以重名,要想指定该规则的适用对象是组而非用户的话,组对象的名称一定要用百分号%开头。
第二栏指定该规则的适用主机。当我们在多个系统之间部署sudo环境时,这一栏格外有用,这里的ALL代表所有主机。但是,对于桌面系统或不想将sudo部署到多个系统的情况,这一栏就换成相应的主机名。
第三栏的值放在括号内,指出第一栏规定的用户能够以何种身份来执行命令。本例中该值设为root,这意味着用户jorge能够以root用户的身份来运行后面列出的命令。该值也可以设成通配符ALL,jorge便能作为系统中的任何用户来执行列出的命令了。
最后一栏(即/usr/bin/find,
/bin/rm)是使用逗号分开的命令表,这些命令能被第一栏规定的用户以第三栏指出的身份来运行它们。本例中,该配置允许jorge作为超级用户运行
/usr/bin/find和 /bin/rm这两个命令。需要指出的是,这里列出的命令一定要使用绝对路径。
3.sudo命令的使用方法
现在的问题是,用户jorge怎样利用分配给他的权限呢?其实很简单,只要在命令行模式下使用sudo命令。
加上他想运行的程序就可以了,比如:
jorge@ubuntu:~$ sudo find . ! -name '*.avi' -exec rm -f //{//} //;
|
倘若jorge企图执行/etc/sudoers文件规定之外的程序(比如find 或 rm)的话,sudo命令便会以失败而告终,并给出警告信息,指出他无权以超级用户身份来运行这些命令。
要想以非root用户身份来运行命令,必须使用-u选项来指定想要作为的用户;否则的话,sudo会默认为root用户,比如要想以fred身份来执行ls命令,就应该这样:
$ sudo -u fred ls /home/fred
|
就像您看到的那样,我们可以利用这些规则为系统创建具体的角色。例如,要让一个组负责帐户管理,你一方面不想让这些用户具备完全的root访问
权限,另一方面还得让他们具有增加和删除用户的权利,那么我们可以在系统上创建一个名为accounts的组,然后把那些用户添加到这个组里。之后,再使
用visudo为/etc/sudoers添加下列内容:
%accounts ALL=(root) /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/usermod
|
现在好了,accounts组中的任何成员都能运行useradd、userdel和usermod命令了。如果过一段时间后,您发现该角色还需要其他工具,只要在该表的尾部将其添上就行了。这样真是方便极了!
需要注意的是,当我们为用户定义可以运行的命令时,必须使用完整的命令路径。这样做是完全出于安全的考虑,如果我们给出的命令只是简单的userad
而非
/usr/sbin/useradd,那么用户有可能创建一个他自己的脚本,也叫做userad,然后放在它的本地路径中,如此一来他就能够通过这个名为
useradd的本地脚本,作为root来执行任何他想要的命令了。这是相当危险的!
sudo命令的另一个便捷的功能,是它能够指出哪些命令在执行时不需要输入密码。这很有用,尤其是在非交互式脚本中以超级用户的身份来运行某些命令的
时候。例如,想要让用户作为超级用户不必输入密码就能执行kill命令,以便用户能立刻杀死一个失控的进程。为此,在命令行前边加上NOPASSWD:属
性即可。例如,可以在/etc/sudoers文件中加上下面一行,从而让jorge获得这种权力:
jorge ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killall
|
这样一来,jorge就能运行以下命令,作为root用户来杀死失控的rm进程了。
jorge@ubuntu:~$ sudo killall rm
|
6.如何启用root帐户
通过以上介绍,我们发现sudo的确很好用,但是如果您早就习惯了在root下工作,想回味一下过去的感觉该怎么办呢?很简单,只要为root设置一个root密码就行了:
好了,现在您能直接作为root登录了。(
分享到:
相关推荐
- **系统管理命令**:包括 `sudo`(执行管理员权限命令)、`reboot`(重启系统)、`shutdown`(关闭系统)等。 #### 6. Ubuntu 软件包管理 - **APT 工具**:APT (Advanced Package Tool) 是 Ubuntu 的默认包管理...
- **用户权限管理**:了解sudo命令的使用,以及如何正确分配用户权限。 - **数据备份与恢复**:定期备份重要数据,并掌握数据恢复方法。 ##### (4)网络应用 - **服务器搭建**:学习如何在Ubuntu上搭建Web服务器...
- **su与sudo**:`su`命令用于切换用户身份,而`sudo`则允许用户以管理员权限执行命令。 - **进程管理**:通过`ps`、`top`等命令可以监控系统中的进程,并使用`kill`、`pkill`等命令来终止进程。 #### 十五、计划...
在Ubuntu中,你可以利用`sudo apt-get install`命令安装所需的软件。 总之,Virtualbox提供了一种便捷的方式在你的主机上运行Ubuntu,而通过适当的配置,你可以享受到与实际物理机器无异的Ubuntu体验。这个过程需要...
7. **权限管理**:通过sudo命令分配管理权限,确保系统的安全性和用户的便利性。 8. **MySQL配置**:为新用户提供Ubuntu上的MySQL配置步骤,对于数据库管理和开发非常重要。 9. **内核编程**:列出Debian/Ubuntu ...
Ubuntu 提供了多种方法来增强系统的安全性,比如通过 `sudo` 命令为用户分配管理权限。`sudo` 允许普通用户执行管理员级别的操作,但需要输入密码进行验证,从而提高了系统的安全性。 ### 总结 Ubuntu 是一个功能...
- 使用终端命令`sudo dpkg -i VMware-Fusion-e.x.p-19431034_arm64.dmg`来安装VMware Fusion。 - 注意:通常情况下,在Mac上安装软件是通过双击`.dmg`文件并按照指示进行操作,而文档中的方法较为特殊,可能只适用...
总的来说,解决Ubuntu下Qt的“无法覆盖文件”问题需要理解Linux的文件系统权限模型,并学会如何利用`chown`命令来调整文件的所有权。一旦掌握了这些基础,就能更好地应对类似的问题,确保Qt或其他软件的顺畅运行。
接下来,我们需要在 Ubuntu 18.04 中利用这个额外的空间。Ubuntu 默认并未预装 Gparted,这是一个强大的图形化磁盘管理工具,用于创建、删除、调整分区大小等操作。要安装 Gparted,您需要打开终端并输入以下命令: ...
- **系统管理**:系统管理员可以利用虚拟机快速搭建和恢复实验环境,提高工作效率。 - **安全测试**:安全专家可以在隔离的环境中进行恶意软件分析或其他安全测试,避免对真实系统造成损害。 #### 四、安装前准备 -...
这时,我们可以利用Gparted这一强大的磁盘管理工具来扩展分区,以满足更多存储需求。本文将提供一个详细的教程,指导您如何在虚拟机下使用Gparted扩展Ubuntu分区。 首先,你需要确保你的虚拟机软件(如VMware或...
常用命令包括`cd`(切换目录)、`ls`(查看目录内容)、`sudo`(以管理员权限执行命令)等。 4. **文件管理**:使用“文件”应用浏览和管理文件,支持常见的文件操作,如复制、粘贴、删除等。 5. **系统设置**:...
6. **权限管理**:理解Linux的用户和组权限模型,以及如何在应用程序中实施权限控制,如使用`sudo`或提升进程权限。 7. **进程间通信(IPC)**:在需要不同进程之间交换数据时,可能会使用信号、共享内存、管道、套...
### Ubuntu + 开发板 NFS 配置详解 #### 一、NFS 概述 **NFS**(Network File ...通过以上步骤,可以实现在 Ubuntu 主机与开发板之间利用 NFS 进行高效、安全的文件共享。这对于加快开发周期、提高效率具有重要意义。
1. **分区概念**:理解硬盘分区,为Ubuntu分配合适的空间。 2. **注意事项**:备份数据,确保安装过程中不会丢失重要文件。 3. **开始安装**:使用Live CD/DVD或USB启动,跟随安装向导完成设置。 **Linux基础** 1. ...
3. **安装补丁**:使用 `sudo` 命令以管理员权限运行补丁安装脚本。通常,这会涉及到编译和安装新的驱动模块。 4. **重新启动 VMWare**:安装完成后,需要重启 VMware 服务,或者重启整个宿主机,让新的驱动模块生效...
3. **设置权限**:MongoDB 需要有读写数据目录的权限,所以你需要为 `mongod` 进程设置适当的权限: ``` sudo chown -R your_username /data/db ``` 4. **启动 MongoDB**:你可以通过执行解压后的二进制文件 `...