# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR The FreeBSD Project # This file is distributed under the same license as the FreeBSD Documentation package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2025-11-08 16:17+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: YAML Front Matter: description #: documentation/content/en/books/handbook/basics/_index.adoc:1 #, no-wrap msgid "Basic commands and functionality of the FreeBSD operating system" msgstr "" #. type: YAML Front Matter: part #: documentation/content/en/books/handbook/basics/_index.adoc:1 #, no-wrap msgid "Part I. Getting Started" msgstr "" #. type: YAML Front Matter: title #: documentation/content/en/books/handbook/basics/_index.adoc:1 #, no-wrap msgid "Chapter 3. FreeBSD Basics" msgstr "" #. type: Title = #: documentation/content/en/books/handbook/basics/_index.adoc:15 #, no-wrap msgid "FreeBSD Basics" msgstr "" #. type: Title == #: documentation/content/en/books/handbook/basics/_index.adoc:53 #, no-wrap msgid "Synopsis" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:58 msgid "" "This chapter covers the basic commands and functionality of the FreeBSD " "operating system. Much of this material is relevant for any UNIX(R)-like " "operating system. New FreeBSD users are encouraged to read through this " "chapter carefully." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:60 msgid "Read this chapter to learn:" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:62 msgid "How to use and configure virtual consoles." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:63 msgid "How to create and manage users and groups on FreeBSD." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:64 msgid "How UNIX(R) file permissions and FreeBSD file flags work." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:65 msgid "The default FreeBSD file system layout." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:66 msgid "The FreeBSD disk organization." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:67 msgid "How to mount and unmount file systems." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:68 msgid "What processes, daemons, and signals are." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:69 msgid "What a shell is, and how to change the default login environment." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:70 msgid "How to use basic text editors." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:71 msgid "What devices and device nodes are." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:72 msgid "How to read manual pages for more information." msgstr "" #. type: Title == #: documentation/content/en/books/handbook/basics/_index.adoc:74 #, no-wrap msgid "Virtual Consoles and Terminals" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:77 msgid "" "Unless FreeBSD has been configured to automatically start a graphical " "environment during startup, the system will boot into a command line login " "prompt, as seen in this example:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:81 #, no-wrap msgid "FreeBSD/amd64 (pc3.example.org) (ttyv0)\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:83 #, no-wrap msgid "login:\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:89 msgid "" "The first line contains some information about the system. The `amd64` " "indicates that FreeBSD is running on a 64-bit x86 system. The hostname is " "`pc3.example.org`, and `ttyv0` indicates that this is the \"system " "console\". The second line is the login prompt." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:93 msgid "" "Since FreeBSD is a multiuser system, it needs some way to distinguish " "between different users. This is accomplished by requiring every user to " "log into the system before gaining access to the programs on the system. " "Every user has a unique \"username\" and a personal \"password\"." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:97 msgid "" "To log into the system console, type the username that was configured during " "system installation, as described in crossref:bsdinstall[bsdinstall-" "addusers,Add Users], and press kbd:[Enter]. Then enter the password " "associated with the username and press kbd:[Enter]. The password is _not " "echoed_ for security reasons." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:101 msgid "" "Once the correct password is input, the message of the day (MOTD) will be " "displayed followed by a command prompt. Depending upon the shell that was " "selected when the user was created, this prompt will be a `+#+`, `$`, or `%` " "character. The prompt indicates that the user is now logged into the " "FreeBSD system console and ready to try the available commands." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:103 #, no-wrap msgid "Virtual Consoles" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:108 msgid "" "While the system console can be used to interact with the system, a user " "working from the command line at the keyboard of a FreeBSD system will " "typically instead log into a virtual console. This is because system " "messages are configured by default to display on the system console. These " "messages will appear over the command or file that the user is working on, " "making it difficult to concentrate on the work at hand." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:112 msgid "" "By default, FreeBSD is configured to provide several virtual consoles for " "inputting commands. Each virtual console has its own login prompt and shell " "and it is easy to switch between virtual consoles. This essentially " "provides the command line equivalent of having several windows open at the " "same time in a graphical environment." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:116 msgid "" "The key combinations kbd:[Alt+F1] through kbd:[Alt+F8] have been reserved by " "FreeBSD for switching between virtual consoles. Use kbd:[Alt+F1] to switch " "to the system console (`ttyv0`), kbd:[Alt+F2] to access the first virtual " "console (`ttyv1`), kbd:[Alt+F3] to access the second virtual console " "(`ttyv2`), and so on. When using Xorg as a graphical console, the " "combination becomes kbd:[Ctrl+Alt+F1] to return to a text-based virtual " "console." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:120 msgid "" "When switching from one console to the next, FreeBSD manages the screen " "output. The result is an illusion of having multiple virtual screens and " "keyboards that can be used to type commands for FreeBSD to run. The " "programs that are launched in one virtual console do not stop running when " "the user switches to a different virtual console." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:122 msgid "" "Refer to man:kbdcontrol[1], man:vidcontrol[1], man:atkbd[4], man:syscons[4], " "and man:vt[4] for a more technical description of the FreeBSD console and " "its keyboard drivers." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:124 msgid "" "In FreeBSD, the number of available virtual consoles is configured in this " "section of `/etc/ttys`:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:139 #, no-wrap msgid "" "# name getty type status comments\n" "#\n" "ttyv0 \"/usr/libexec/getty Pc\" xterm on secure\n" "# Virtual terminals\n" "ttyv1 \"/usr/libexec/getty Pc\" xterm on secure\n" "ttyv2 \"/usr/libexec/getty Pc\" xterm on secure\n" "ttyv3 \"/usr/libexec/getty Pc\" xterm on secure\n" "ttyv4 \"/usr/libexec/getty Pc\" xterm on secure\n" "ttyv5 \"/usr/libexec/getty Pc\" xterm on secure\n" "ttyv6 \"/usr/libexec/getty Pc\" xterm on secure\n" "ttyv7 \"/usr/libexec/getty Pc\" xterm on secure\n" "ttyv8 \"/usr/X11R6/bin/xdm -nodaemon\" xterm off secure\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:145 msgid "" "To disable a virtual console, put a comment symbol (`+#+`) at the beginning " "of the line representing that virtual console. For example, to reduce the " "number of available virtual consoles from eight to four, put a `+#+` in " "front of the last four lines representing virtual consoles `ttyv5` through " "`ttyv8`. _Do not_ comment out the line for the system console `ttyv0`. " "Note that the last virtual console (`ttyv8`) is used to access the graphical " "environment if Xorg has been installed and configured as described in " "crossref:x11[x11,The X Window System]." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:147 msgid "" "For a detailed description of every column in this file and the available " "options for the virtual consoles, refer to man:ttys[5]." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:149 #, no-wrap msgid "Single User Mode" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:157 msgid "" "The FreeBSD boot menu provides an option labelled as \"Boot Single User\". " "If this option is selected, the system will boot into a special mode known " "as \"single user mode\". This mode is typically used to repair a system " "that will not boot or to reset the `root` password when it is not known. " "While in single user mode, networking and other virtual consoles are not " "available. However, full `root` access to the system is available, and by " "default, the `root` password is not needed. For these reasons, physical " "access to the keyboard is needed to boot into this mode and determining who " "has physical access to the keyboard is something to consider when securing a " "FreeBSD system." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:159 msgid "" "The settings which control single user mode are found in this section of `/" "etc/ttys`:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:167 #, no-wrap msgid "" "# name getty type status comments\n" "#\n" "# If console is marked \"insecure\", then init will ask for the root password\n" "# when going to single-user mode.\n" "console none unknown off secure\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:173 msgid "" "By default, the status is set to `secure`. This assumes that who has " "physical access to the keyboard is either not important or it is controlled " "by a physical security policy. If this setting is changed to `insecure`, " "the assumption is that the environment itself is insecure because anyone can " "access the keyboard. When this line is changed to `insecure`, FreeBSD will " "prompt for the `root` password when a user selects to boot into single user " "mode." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:177 msgid "" "_Be careful when changing this setting to `insecure`!_ If the `root` " "password is forgotten, booting into single user mode is still possible, but " "may be difficult for someone who is not familiar with the FreeBSD booting " "process." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:180 #, no-wrap msgid "Changing Console Video Modes" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:184 msgid "" "The FreeBSD console default video mode may be adjusted to 1024x768, " "1280x1024, or any other size supported by the graphics chip and monitor. To " "use a different video mode load the `VESA` module:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:188 #, no-wrap msgid "# kldload vesa\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:192 msgid "" "To determine which video modes are supported by the hardware, use " "man:vidcontrol[1]. To get a list of supported video modes issue the " "following:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:196 #, no-wrap msgid "# vidcontrol -i mode\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:200 msgid "" "The output of this command lists the video modes that are supported by the " "hardware. To select a new video mode, specify the mode using " "man:vidcontrol[1] as the `root` user:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:204 #, no-wrap msgid "# vidcontrol MODE_279\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:207 msgid "" "If the new video mode is acceptable, it can be permanently set on boot by " "adding it to `/etc/rc.conf`:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:211 #, no-wrap msgid "allscreens_flags=\"MODE_279\"\n" msgstr "" #. type: Title == #: documentation/content/en/books/handbook/basics/_index.adoc:214 #, no-wrap msgid "Users and Basic Account Management" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:219 msgid "" "FreeBSD allows multiple users to use the computer at the same time. While " "only one user can sit in front of the screen and use the keyboard at any one " "time, any number of users can log in to the system through the network. To " "use the system, each user should have their own user account." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:221 msgid "This chapter describes:" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:223 msgid "The different types of user accounts on a FreeBSD system." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:224 msgid "How to add, remove, and modify user accounts." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:225 msgid "" "How to set limits to control the resources that users and groups are allowed " "to access." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:226 msgid "How to create groups and add users as members of a group." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:228 #, no-wrap msgid "Account Types" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:231 msgid "" "Since all access to the FreeBSD system is achieved using accounts and all " "processes are run by users, user and account management is important." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:233 msgid "" "There are three main types of accounts: system accounts, user accounts, and " "the superuser account." msgstr "" #. type: Title ==== #: documentation/content/en/books/handbook/basics/_index.adoc:235 #, no-wrap msgid "System Accounts" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:239 msgid "" "System accounts are used to run services such as DNS, mail, and web " "servers. The reason for this is security; if all services ran as the " "superuser, they could act without restriction." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:241 msgid "" "Examples of system accounts are `daemon`, `operator`, `bind`, `news`, and " "`www`." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:244 msgid "" "`nobody` is the generic unprivileged system account. However, the more " "services that use `nobody`, the more files and processes that user will " "become associated with, and hence the more privileged that user becomes." msgstr "" #. type: Title ==== #: documentation/content/en/books/handbook/basics/_index.adoc:246 #, no-wrap msgid "User Accounts" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:251 msgid "" "User accounts are assigned to real people and are used to log in and use the " "system. Every person accessing the system should have a unique user " "account. This allows the administrator to find out who is doing what and " "prevents users from clobbering the settings of other users." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:253 msgid "" "Each user can set up their own environment to accommodate their use of the " "system, by configuring their default shell, editor, key bindings, and " "language settings." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:255 msgid "" "Every user account on a FreeBSD system has certain information associated " "with it:" msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:256 #, no-wrap msgid "User name" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:261 msgid "" "The user name is typed at the `login:` prompt. Each user must have a unique " "user name. There are a number of rules for creating valid user names which " "are documented in man:passwd[5]. It is recommended to use user names that " "consist of eight or fewer, all lower case characters in order to maintain " "backwards compatibility with applications." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:262 #, no-wrap msgid "Password" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:264 msgid "Each account has an associated password." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:265 #, no-wrap msgid "User ID (UID)" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:269 msgid "" "The User ID (UID) is a number used to uniquely identify the user to the " "FreeBSD system. Commands that allow a user name to be specified will first " "convert it to the UID. It is recommended to use a UID less than 65535, " "since higher values may cause compatibility issues with some software." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:270 #, no-wrap msgid "Group ID (GID)" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:275 msgid "" "The Group ID (GID) is a number used to uniquely identify the primary group " "that the user belongs to. Groups are a mechanism for controlling access to " "resources based on a user's GID rather than their UID. This can " "significantly reduce the size of some configuration files and allows users " "to be members of more than one group. It is recommended to use a GID of " "65535 or lower as higher GIDs may break some software." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:276 #, no-wrap msgid "Login class" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:279 msgid "" "Login classes are an extension to the group mechanism that provide " "additional flexibility when tailoring the system to different users. Login " "classes are discussed further in crossref:security[users-" "limiting,Configuring Login Classes]." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:280 #, no-wrap msgid "Password change time" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:283 msgid "" "By default, passwords do not expire. However, password expiration can be " "enabled on a per-user basis, forcing some or all users to change their " "passwords after a certain amount of time has elapsed." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:284 #, no-wrap msgid "Account expiration time" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:288 msgid "" "By default, FreeBSD does not expire accounts. When creating accounts that " "need a limited lifespan, such as student accounts in a school, specify the " "account expiry date using man:pw[8]. After the expiry time has elapsed, the " "account cannot be used to log in to the system, although the account's " "directories and files will remain." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:289 #, no-wrap msgid "User's full name" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:292 msgid "" "The user name uniquely identifies the account to FreeBSD, but does not " "necessarily reflect the user's real name. Similar to a comment, this " "information can contain spaces, uppercase characters, and be more than 8 " "characters long." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:293 #, no-wrap msgid "Home directory" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:298 msgid "" "The home directory is the full path to a directory on the system. This is " "the user's starting directory when the user logs in. A common convention is " "to put all user home directories under `/home/username` or `/usr/home/" "username`. Each user stores their personal files and subdirectories in " "their own home directory." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:299 #, no-wrap msgid "User shell" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:302 msgid "" "The shell provides the user's default environment for interacting with the " "system. There are many different kinds of shells and experienced users will " "have their own preferences, which can be reflected in their account settings." msgstr "" #. type: Title ==== #: documentation/content/en/books/handbook/basics/_index.adoc:304 #, no-wrap msgid "The Superuser Account" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:308 msgid "" "The superuser account, usually called `root`, is used to manage the system " "with no limitations on privileges. For this reason, it should not be used " "for day-to-day tasks like sending and receiving mail, general exploration of " "the system, or programming." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:311 msgid "" "The superuser, unlike other user accounts, can operate without limits, and " "misuse of the superuser account may result in spectacular disasters. User " "accounts are unable to destroy the operating system by mistake, so it is " "recommended to login as a user account and to only become the superuser when " "a command requires extra privilege." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:313 msgid "" "Always double and triple-check any commands issued as the superuser, since " "an extra space or missing character can mean irreparable data loss." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:316 msgid "" "There are several ways to gain superuser privilege. While one can log in as " "`root`, this is highly discouraged." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:321 msgid "" "Instead, use man:su[1] to become the superuser. If `-` is specified when " "running this command, the user will also inherit the root user's " "environment. The user running this command must be in the `wheel` group or " "else the command will fail. The user must also know the password for the " "`root` user account." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:324 msgid "" "In this example, the user only becomes superuser in order to run `make " "install` as this step requires superuser privilege. Once the command " "completes, the user types `exit` to leave the superuser account and return " "to the privilege of their user account." msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:325 #, no-wrap msgid "Install a Program As the Superuser" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:337 #, no-wrap msgid "" "% configure\n" "% make\n" "% su -\n" "Password:\n" "# make install\n" "# exit\n" "%\n" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:343 msgid "" "The built-in man:su[1] framework works well for single systems or small " "networks with just one system administrator. An alternative is to install " "the package:security/sudo[] package or port. This software provides " "activity logging and allows the administrator to configure which users can " "run which commands as the superuser." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:345 #, no-wrap msgid "Managing Accounts" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:351 msgid "" "FreeBSD provides a variety of different commands to manage user accounts. " "The most common commands are summarized in crossref:basics[users-modifying-" "utilities,Utilities for Managing User Accounts], followed by some examples " "of their usage. See the manual page for each utility for more details and " "usage examples." msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:353 #, no-wrap msgid "Utilities for Managing User Accounts" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:357 #, no-wrap msgid "Command" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:359 #, no-wrap msgid "Summary" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:360 #, no-wrap msgid "man:adduser[8]" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:362 #, no-wrap msgid "The recommended command-line application for adding new users." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:363 #, no-wrap msgid "man:rmuser[8]" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:365 #, no-wrap msgid "The recommended command-line application for removing users." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:366 #, no-wrap msgid "man:chpass[1]" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:368 #, no-wrap msgid "A flexible tool for changing user database information." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:369 #, no-wrap msgid "man:passwd[1]" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:371 #, no-wrap msgid "The command-line tool to change user passwords." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:372 #, no-wrap msgid "man:pw[8]" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:374 #, no-wrap msgid "A powerful and flexible tool for modifying all aspects of user accounts." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:375 #, no-wrap msgid "man:bsdconfig[8]" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:376 #, no-wrap msgid "A system configuration utility with account management support." msgstr "" #. type: Title ==== #: documentation/content/en/books/handbook/basics/_index.adoc:379 #, no-wrap msgid "Adding a user" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:385 msgid "" "The recommended program for adding new users is man:adduser[8]. When a new " "user is added, this program automatically updates `/etc/passwd` and `/etc/" "group`. It also creates a home directory for the new user, copies in the " "default configuration files from `/usr/share/skel`, and can optionally mail " "the new user a welcome message. This utility must be run as the superuser." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:390 msgid "" "The man:adduser[8] utility is interactive and walks through the steps for " "creating a new user account. As seen in crossref:basics[users-modifying-" "adduser, Adding a User on FreeBSD], either input the required information or " "press kbd:[Return] to accept the default value shown in square brackets. In " "this example, the user has been invited into the `wheel` group, allowing " "them to become the superuser with man:su[1]. When finished, the utility " "will prompt to either create another user or to exit." msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:392 #, no-wrap msgid "Adding a User on FreeBSD" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:398 #, no-wrap msgid "# adduser\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:401 #: documentation/content/en/books/handbook/basics/_index.adoc:473 #: documentation/content/en/books/handbook/basics/_index.adoc:512 #: documentation/content/en/books/handbook/basics/_index.adoc:571 #: documentation/content/en/books/handbook/basics/_index.adoc:596 #: documentation/content/en/books/handbook/basics/_index.adoc:650 #: documentation/content/en/books/handbook/basics/_index.adoc:671 #: documentation/content/en/books/handbook/basics/_index.adoc:693 #: documentation/content/en/books/handbook/basics/_index.adoc:712 #: documentation/content/en/books/handbook/basics/_index.adoc:790 #: documentation/content/en/books/handbook/basics/_index.adoc:1560 #: documentation/content/en/books/handbook/basics/_index.adoc:1588 msgid "The output should be similar to the following:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:432 #, no-wrap msgid "" "Username: jru\n" "Full name: J. Random User\n" "Uid (Leave empty for default):\n" "Login group [jru]:\n" "Login group is jru. Invite jru into other groups? []: wheel\n" "Login class [default]:\n" "Shell (sh csh tcsh zsh nologin) [sh]: zsh\n" "Home directory [/home/jru]:\n" "Home directory permissions (Leave empty for default):\n" "Use password-based authentication? [yes]:\n" "Use an empty password? (yes/no) [no]:\n" "Use a random password? (yes/no) [no]:\n" "Enter password:\n" "Enter password again:\n" "Lock out the account after creation? [no]:\n" "Username : jru\n" "Password : ****\n" "Full Name : J. Random User\n" "Uid : 1001\n" "Class :\n" "Groups : jru wheel\n" "Home : /home/jru\n" "Shell : /usr/local/bin/zsh\n" "Locked : no\n" "OK? (yes/no): yes\n" "adduser: INFO: Successfully added (jru) to the user database.\n" "Add another user? (yes/no): no\n" "Goodbye!\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:438 msgid "" "Since the password is not echoed when typed, be careful to not mistype the " "password when creating the user account." msgstr "" #. type: Title ==== #: documentation/content/en/books/handbook/basics/_index.adoc:441 #, no-wrap msgid "Removing a user" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:445 msgid "" "To completely remove a user from the system, run man:rmuser[8] as the " "superuser. This command performs the following steps:" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:449 msgid "Removes the user's man:crontab[1] entry, if one exists." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:450 msgid "Removes any man:at[1] jobs belonging to the user." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:451 msgid "Sends a SIGKILL signal to all processes owned by the user." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:452 msgid "Removes the user from the system's local password file." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:453 msgid "" "Removes the user's home directory (if it is owned by the user), including " "handling of symbolic links in the path to the actual home directory." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:454 msgid "Removes the incoming mail files belonging to the user from `/var/mail`." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:455 msgid "" "Removes all files owned by the user from `/tmp`, `/var/tmp`, and `/var/tmp/" "vi.recover`." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:456 msgid "" "Removes the username from all groups to which it belongs in `/etc/group`. " "(If a group becomes empty and the group name is the same as the username, " "the group is removed; this complements man:adduser[8]'s per-user unique " "groups.)" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:457 msgid "" "Removes all message queues, shared memory segments and semaphores owned by " "the user." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:460 msgid "" "man:rmuser[8] cannot be used to remove superuser accounts since that is " "almost always an indication of massive destruction." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:462 msgid "" "By default, an interactive mode is used, as shown in the following example." msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:463 #, no-wrap msgid "`rmuser` Interactive Account Removal" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:469 #, no-wrap msgid "# rmuser jru\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:481 #, no-wrap msgid "" "Matching password entry:\n" "jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh\n" "Is this the entry you wish to remove? y\n" "Remove user's home directory (/home/jru)? y\n" "Removing user (jru): mailspool home passwd.\n" msgstr "" #. type: Title ==== #: documentation/content/en/books/handbook/basics/_index.adoc:485 #, no-wrap msgid "Change user information" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:489 msgid "" "Any user can use man:chpass[1] to change their default shell and personal " "information associated with their user account. The superuser can use this " "utility to change additional account information for any user." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:492 msgid "" "When passed no options, aside from an optional username, man:chpass[1] " "displays an editor containing user information. When the user exits from " "the editor, the user database is updated with the new information." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:496 msgid "" "This utility will prompt for the user's password when exiting the editor, " "unless the utility is run as the superuser." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:501 msgid "" "In crossref:basics[users-modifying-chpass-su,Using `chpass` as Superuser], " "the superuser has typed `chpass jru` and is now viewing the fields that can " "be changed for this user. If `jru` runs this command instead, only the last " "six fields will be displayed and available for editing. This is shown in " "crossref:basics[users-modifying-chpass-ru,Using `chpass` as Regular User]." msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:503 #, no-wrap msgid "Using `chpass` as Superuser" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:509 #, no-wrap msgid "# chpass jru\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:530 #, no-wrap msgid "" "# Changing user database information for jru.\n" "Login: jru\n" "Password: *\n" "Uid [#]: 1001\n" "Gid [# or name]: 1001\n" "Change [month day year]:\n" "Expire [month day year]:\n" "Class:\n" "Home directory: /home/jru\n" "Shell: /usr/local/bin/zsh\n" "Full Name: J. Random User\n" "Office Location:\n" "Office Phone:\n" "Home Phone:\n" "Other information:\n" msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:534 #, no-wrap msgid "Using `chpass` as Regular User" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:546 #, no-wrap msgid "" "#Changing user database information for jru.\n" "Shell: /usr/local/bin/zsh\n" "Full Name: J. Random User\n" "Office Location:\n" "Office Phone:\n" "Home Phone:\n" "Other information:\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:554 msgid "" "The commands man:chfn[1] and man:chsh[1] are links to man:chpass[1], as are " "man:ypchpass[1], man:ypchfn[1], and man:ypchsh[1]. Since NIS support is " "automatic, specifying the `yp` before the command is not necessary. How to " "configure NIS is covered in crossref:network-servers[network-servers,Network " "Servers]." msgstr "" #. type: Title ==== #: documentation/content/en/books/handbook/basics/_index.adoc:557 #, no-wrap msgid "Change user password" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:561 msgid "" "Any user can easily change their password using man:passwd[1]. To prevent " "accidental or unauthorized changes, this command will prompt for the user's " "original password before a new password can be set:" msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:562 #, no-wrap msgid "Changing The Password" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:568 #, no-wrap msgid "% passwd\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:580 #, no-wrap msgid "" "Changing local password for jru.\n" "Old password:\n" "New password:\n" "Retype new password:\n" "passwd: updating the database...\n" "passwd: done\n" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:586 msgid "" "The superuser can change any user's password by specifying the username when " "running man:passwd[1]. When this utility is run as the superuser, it will " "not prompt for the user's current password. This allows the password to be " "changed when a user cannot remember the original password." msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:587 #, no-wrap msgid "Changing Another User's Password as the Superuser" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:593 #, no-wrap msgid "# passwd jru\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:604 #, no-wrap msgid "" "Changing local password for jru.\n" "New password:\n" "Retype new password:\n" "passwd: updating the database...\n" "passwd: done\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:610 msgid "" "As with man:chpass[1], man:yppasswd[1] is a link to man:passwd[1], so NIS " "works with either command." msgstr "" #. type: Title ==== #: documentation/content/en/books/handbook/basics/_index.adoc:613 #, no-wrap msgid "Create, remove, modify and display system users and groups" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:618 msgid "" "The man:pw[8] utility can create, remove, modify, and display users and " "groups. It functions as a front end to the system user and group files. " "man:pw[8] has a very powerful set of command line options that make it " "suitable for use in shell scripts, but new users may find it more " "complicated than the other commands presented in this section." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:620 #, no-wrap msgid "Managing Groups" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:625 msgid "" "A group is a list of users. A group is identified by its group name and " "GID. In FreeBSD, the kernel uses the UID of a process, and the list of " "groups it belongs to, to determine what the process is allowed to do. Most " "of the time, the GID of a user or process usually means the first group in " "the list." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:630 msgid "" "The group name to GID mapping is listed in `/etc/group`. This is a plain " "text file with four colon-delimited fields. The first field is the group " "name, the second is the encrypted password, the third the GID, and the " "fourth the comma-delimited list of members. For a complete description of " "the syntax, refer to man:group[5]." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:634 msgid "" "The superuser can modify `/etc/group` using a text editor, although editing " "the group file using man:vigr[8] is preferred because it can catch some " "common mistakes. Alternatively, man:pw[8] can be used to add and edit " "groups. For example, to add a group called `teamtwo` and then confirm that " "it exists:" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:638 msgid "" "Care must be taken when using the operator group, as unintended superuser-" "like access privileges may be granted, including but not limited to " "shutdown, reboot, and access to all items in `/dev` in the group." msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:640 #, no-wrap msgid "Adding a Group Using man:pw[8]" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:647 #, no-wrap msgid "" "# pw groupadd teamtwo\n" "# pw groupshow teamtwo\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:654 #, no-wrap msgid "teamtwo:*:1100:\n" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:660 msgid "" "In this example, `1100` is the GID of `teamtwo`. Right now, `teamtwo` has " "no members. This command will add `jru` as a member of `teamtwo`." msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:661 #, no-wrap msgid "Adding User Accounts to a New Group Using man:pw[8]" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:668 #, no-wrap msgid "" "# pw groupmod teamtwo -M jru\n" "# pw groupshow teamtwo\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:675 #, no-wrap msgid "teamtwo:*:1100:jru\n" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:682 msgid "" "The argument to `-M` is a comma-delimited list of users to be added to a new " "(empty) group or to replace the members of an existing group. To the user, " "this group membership is different from (and in addition to) the user's " "primary group listed in the password file. This means that the user will " "not show up as a member when using `groupshow` with man:pw[8], but will show " "up when the information is queried via man:id[1] or a similar tool. When " "man:pw[8] is used to add a user to a group, it only manipulates `/etc/group` " "and does not attempt to read additional data from `/etc/passwd`." msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:683 #, no-wrap msgid "Adding a New Member to a Group Using man:pw[8]" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:690 #, no-wrap msgid "" "# pw groupmod teamtwo -m db\n" "# pw groupshow teamtwo\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:697 #, no-wrap msgid "teamtwo:*:1100:jru,db\n" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:702 msgid "" "In this example, the argument to `-m` is a comma-delimited list of users who " "are to be added to the group. Unlike the previous example, these users are " "appended to the group and do not replace existing users in the group." msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:703 #, no-wrap msgid "Using man:id[1] to Determine Group Membership" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:709 #, no-wrap msgid "% id jru\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:716 #, no-wrap msgid "uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)\n" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:720 msgid "In this example, `jru` is a member of the groups `jru` and `teamtwo`." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:722 msgid "" "For more information about this command and the format of `/etc/group`, " "refer to man:pw[8] and man:group[5]." msgstr "" #. type: Title == #: documentation/content/en/books/handbook/basics/_index.adoc:724 #, no-wrap msgid "Permissions" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:728 msgid "" "In FreeBSD, every file and directory has an associated set of permissions " "and several utilities are available for viewing and modifying these " "permissions. Understanding how permissions work is necessary to make sure " "that users are able to access the files that they need and are unable to " "improperly access the files used by the operating system or owned by other " "users." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:731 msgid "" "This section discusses the traditional UNIX(R) permissions used in FreeBSD. " "For finer-grained file system access control, refer to crossref:security[fs-" "acl,Access Control Lists]." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:737 msgid "" "In UNIX(R), basic permissions are assigned using three types of access: " "read, write, and execute. These access types are used to determine file " "access to the file's owner, group, and others (everyone else). The read, " "write, and execute permissions can be represented as the letters `r`, `w`, " "and `x`. They can also be represented as binary numbers as each permission " "is either on or off (`0`). When represented as a number, the order is " "always read as `rwx`, where `r` has an on value of `4`, `w` has an on value " "of `2` and `x` has an on value of `1`." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:740 msgid "" "Table 4.1 summarizes the possible numeric and alphabetic possibilities. " "When reading the \"Directory Listing\" column, a `-` is used to represent a " "permission that is set to off." msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:741 #, no-wrap msgid "UNIX(R) Permissions" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:745 #, no-wrap msgid "Value" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:746 #, no-wrap msgid "Permission" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:748 #, no-wrap msgid "Directory Listing" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:749 #, no-wrap msgid "0" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:750 #, no-wrap msgid "No read, no write, no execute" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:752 #, no-wrap msgid "`---`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:753 #, no-wrap msgid "1" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:754 #, no-wrap msgid "No read, no write, execute" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:756 #, no-wrap msgid "`--x`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:757 #, no-wrap msgid "2" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:758 #, no-wrap msgid "No read, write, no execute" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:760 #, no-wrap msgid "`-w-`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:761 #, no-wrap msgid "3" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:762 #, no-wrap msgid "No read, write, execute" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:764 #, no-wrap msgid "`-wx`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:765 #, no-wrap msgid "4" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:766 #, no-wrap msgid "Read, no write, no execute" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:768 #, no-wrap msgid "`r--`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:769 #, no-wrap msgid "5" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:770 #, no-wrap msgid "Read, no write, execute" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:772 #, no-wrap msgid "`r-x`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:773 #, no-wrap msgid "6" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:774 #, no-wrap msgid "Read, write, no execute" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:776 #, no-wrap msgid "`rw-`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:777 #, no-wrap msgid "7" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:778 #, no-wrap msgid "Read, write, execute" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:779 #, no-wrap msgid "`rwx`" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:783 msgid "" "Use the `-l` argument with man:ls[1] to view a long directory listing that " "includes a column of information about a file's permissions for the owner, " "group, and everyone else. For example, `ls -l` in an arbitrary directory " "may show:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:787 #, no-wrap msgid "% ls -l\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:797 #, no-wrap msgid "" "total 530\n" "-rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile\n" "-rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile\n" "-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:807 msgid "" "Focusing on the line for `myfile`, the first `(leftmost)` character " "indicates whether this file is a regular file, a directory, a special " "character device, a socket, or any other special pseudo-file device. In " "this example, the `-` indicates a regular file. The next three characters, " "`rw-` in this example, give the permissions for the owner of the file. The " "next three characters, `r--`, give the permissions for the group that the " "file belongs to. The final three characters, `r--`, give the permissions " "for the rest of the world. A dash means that the permission is turned off. " "In this example, the permissions are set so the owner can read and write to " "the file, the group can read the file, and the rest of the world can only " "read the file. According to the table above, the permissions for this file " "would be `644`, where each digit represents the three parts of the file's " "permission." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:810 msgid "" "How does the system control permissions on devices? FreeBSD treats most " "hardware devices as a file that programs can open, read, and write data to. " "These special device files are stored in `/dev/`." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:816 msgid "" "Directories are also treated as files. They have read, write, and execute " "permissions. The executable bit for a directory has a slightly different " "meaning than that of files. When a directory is marked executable, it means " "it is possible to change into that directory using man:cd[1]. This also " "means that it is possible to access the files within that directory, subject " "to the permissions on the files themselves." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:819 msgid "" "In order to perform a directory listing, the read permission must be set on " "the directory. In order to delete a file that one knows the name of, it is " "necessary to have write _and_ execute permissions to the directory " "containing the file." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:822 msgid "" "There are more permission bits, but they are primarily used in special " "circumstances such as setuid binaries and sticky directories. For more " "information on file permissions and how to set them, refer to man:chmod[1]." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:823 #, no-wrap msgid "Symbolic Permissions" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:827 msgid "" "Symbolic permissions use characters instead of octal values to assign " "permissions to files or directories. Symbolic permissions use the syntax of " "(who) (action) (permissions), where the following values are available:" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:832 #, no-wrap msgid "Option" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:833 #, no-wrap msgid "Letter" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:835 #, no-wrap msgid "Represents" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:836 #: documentation/content/en/books/handbook/basics/_index.adoc:840 #: documentation/content/en/books/handbook/basics/_index.adoc:844 #: documentation/content/en/books/handbook/basics/_index.adoc:848 #, no-wrap msgid "(who)" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:837 #, no-wrap msgid "u" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:839 #, no-wrap msgid "User" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:841 #, no-wrap msgid "g" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:843 #, no-wrap msgid "Group owner" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:845 #, no-wrap msgid "o" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:847 #, no-wrap msgid "Other" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:849 #, no-wrap msgid "a" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:851 #, no-wrap msgid "All (\"world\")" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:852 #: documentation/content/en/books/handbook/basics/_index.adoc:856 #: documentation/content/en/books/handbook/basics/_index.adoc:860 #, no-wrap msgid "(action)" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:853 #, no-wrap msgid "+" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:855 #, no-wrap msgid "Adding permissions" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:857 #, no-wrap msgid "-" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:859 #, no-wrap msgid "Removing permissions" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:861 #, no-wrap msgid "=" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:863 #, no-wrap msgid "Explicitly set permissions" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:864 #: documentation/content/en/books/handbook/basics/_index.adoc:868 #: documentation/content/en/books/handbook/basics/_index.adoc:872 #: documentation/content/en/books/handbook/basics/_index.adoc:876 #: documentation/content/en/books/handbook/basics/_index.adoc:880 #, no-wrap msgid "(permissions)" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:865 #, no-wrap msgid "r" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:867 #, no-wrap msgid "Read" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:869 #, no-wrap msgid "w" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:871 #, no-wrap msgid "Write" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:873 #, no-wrap msgid "x" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:875 #, no-wrap msgid "Execute" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:877 #, no-wrap msgid "t" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:879 #, no-wrap msgid "Sticky bit" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:881 #, no-wrap msgid "s" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:882 #, no-wrap msgid "Set UID or GID" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:886 msgid "" "These values are used with man:chmod[1], but with letters instead of " "numbers. For example, the following command would block both members of the " "group associated with _FILE_ and all other users from accessing _FILE_:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:890 #, no-wrap msgid "% chmod go= FILE\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:894 msgid "" "A comma separated list can be provided when more than one set of changes to " "a file must be made. For example, the following command removes the group " "and \"world\" write permission on _FILE_, and adds the execute permissions " "for everyone:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:898 #, no-wrap msgid "% chmod go-w,a+x FILE\n" msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:900 #, no-wrap msgid "FreeBSD File Flags" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:905 msgid "" "In addition to file permissions, FreeBSD supports the use of \"file " "flags\". These flags add an additional level of security and control over " "files, but not directories. With file flags, even `root` can be prevented " "from removing or altering files." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:908 msgid "" "File flags are modified using man:chflags[1]. For example, to enable the " "system undeletable flag on the file `file1`, issue the following command:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:912 #, no-wrap msgid "# chflags sunlink file1\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:915 msgid "" "To disable the system undeletable flag, put a \"no\" in front of the " "`sunlink`:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:919 #, no-wrap msgid "# chflags nosunlink file1\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:922 msgid "To view the flags of a file, use `-lo` with man:ls[1]:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:926 #, no-wrap msgid "# ls -lo file1\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:931 #, no-wrap msgid "-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:936 msgid "" "Several file flags may only be added or removed by the `root` user. In " "other cases, the file owner may set its file flags. Refer to man:chflags[1] " "and man:chflags[2] for more information." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:937 #, no-wrap msgid "The setuid, setgid, and sticky Permissions" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:941 msgid "" "Other than the permissions already discussed, there are three other specific " "settings that all administrators should know about. They are the `setuid`, " "`setgid`, and `sticky` permissions." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:944 msgid "" "These settings are important for some UNIX(R) operations as they provide " "functionality not normally granted to normal users. To understand them, the " "difference between the real user ID and effective user ID must be noted." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:950 msgid "" "The real user ID is the UID who owns or starts the process. The effective " "UID is the user ID the process runs as. As an example, man:passwd[1] runs " "with the real user ID when a user changes their password. However, in order " "to update the password database, the command runs as the effective ID of the " "`root` user. This allows users to change their passwords without seeing a " "`Permission Denied` error." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:952 msgid "" "The setuid permission may be added symbolically by adding the `s` permission " "for the user as in the following example:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:956 #, no-wrap msgid "# chmod u+s suidexample.sh\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:959 msgid "" "The setuid permission may also be set by prefixing a permission set with the " "number four (4) as shown in the following example:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:963 #, no-wrap msgid "# chmod 4755 suidexample.sh\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:966 msgid "The permissions on `suidexample.sh` now look like the following:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:970 #, no-wrap msgid "-rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.sh\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:974 msgid "" "Note that a `s` is now part of the permission set designated for the file " "owner, replacing the executable bit. This allows utilities which need " "elevated permissions, such as man:passwd[1]." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:979 msgid "" "The `nosuid` man:mount[8] option will cause such binaries to silently fail " "without alerting the user. That option is not completely reliable as a " "`nosuid` wrapper may be able to circumvent it." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:984 msgid "" "To view this in real time, open two terminals. On one, type `passwd` as a " "normal user. While it waits for a new password, check the process table and " "look at the user information for man:passwd[1]:" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:986 msgid "In terminal A:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:991 #, no-wrap msgid "" "Changing local password for trhodes\n" "Old Password:\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:994 msgid "In terminal B:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:998 #, no-wrap msgid "# ps aux | grep passwd\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1004 #, no-wrap msgid "" "trhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd\n" "root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1007 msgid "" "Although man:passwd[1] is run as a normal user, it is using the effective " "UID of `root`." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1010 msgid "" "The `setgid` permission performs the same function as the `setuid` " "permission; except that it alters the group settings. When an application " "or utility executes with this setting, it will be granted the permissions " "based on the group that owns the file, not the user who started the process." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1012 msgid "" "To set the `setgid` permission on a file symbolically, add the `s` " "permission for the group with man:chmod[1]:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1016 #, no-wrap msgid "# chmod g+s sgidexample.sh\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1019 msgid "Alternatively, provide man:chmod[1] with a leading two (2):" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1023 #, no-wrap msgid "# chmod 2755 sgidexample.sh\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1026 msgid "" "In the following listing, notice that the `s` is now in the field designated " "for the group permission settings:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1030 #, no-wrap msgid "-rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidexample.sh\n" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1036 msgid "" "In these examples, even though the shell script in question is an executable " "file, it will not run with a different EUID or effective user ID. This is " "because shell scripts may not access the man:setuid[2] system calls." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1040 msgid "" "The `setuid` and `setgid` permission bits may lower system security, by " "allowing for elevated permissions. The third special permission, the " "`sticky bit`, can strengthen the security of a system." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1044 msgid "" "When the `sticky bit` is set on a directory, it allows file deletion only by " "the file owner. This is useful to prevent file deletion in public " "directories, such as `/tmp`, by users who do not own the file. To utilize " "this permission, add the `t` mode to the file:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1048 #, no-wrap msgid "# chmod +t /tmp\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1051 msgid "Alternatively, prefix the permission set with a one (1):" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1055 #, no-wrap msgid "# chmod 1777 /tmp\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1058 msgid "" "The `sticky bit` permission will display as a `t` at the very end of the " "permission set:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1062 #, no-wrap msgid "# ls -al / | grep tmp\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1067 #, no-wrap msgid "drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp\n" msgstr "" #. type: Title == #: documentation/content/en/books/handbook/basics/_index.adoc:1070 #, no-wrap msgid "Directory Structure" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1076 msgid "" "The FreeBSD directory hierarchy is fundamental to obtaining an overall " "understanding of the system. The most important directory is root or, \"/" "\". This directory is the first one mounted at boot time and it contains " "the base system necessary to prepare the operating system for multi-user " "operation. The root directory also contains mount points for other file " "systems that are mounted during the transition to multi-user operation." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1084 msgid "" "A mount point is a directory where additional file systems can be grafted " "onto a parent file system (usually the root file system). This is further " "described in crossref:basics[disk-organization, Disk Organization]. " "Standard mount points include `/usr/`, `/var/`, `/tmp/`, `/mnt/`, and `/" "media/`. These directories are usually referenced to entries in `/etc/" "fstab`. This file is a table of various file systems and mount points and " "is read by the system. Most of the file systems in `/etc/fstab` are mounted " "automatically at boot time from the script man:rc[8] unless their entry " "includes `noauto`. Details can be found in crossref:basics[disks-fstab, The " "fstab File]." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1087 msgid "" "A complete description of the file system hierarchy is available in " "man:hier[7]. The following table provides a brief overview of the most " "common directories." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1091 #, no-wrap msgid "Directory" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1093 #: documentation/content/en/books/handbook/basics/_index.adoc:1698 #, no-wrap msgid "Description" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1094 #, no-wrap msgid "`/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1096 #, no-wrap msgid "Root directory of the file system." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1097 #, no-wrap msgid "`/bin/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1099 #, no-wrap msgid "User utilities fundamental to both single-user and multi-user environments." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1100 #, no-wrap msgid "`/boot/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1102 #, no-wrap msgid "Programs and configuration files used during operating system bootstrap." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1103 #, no-wrap msgid "`/boot/defaults/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1105 #, no-wrap msgid "Default boot configuration files. Refer to man:loader.conf[5] for details." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1106 #, no-wrap msgid "`/dev/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1108 #, no-wrap msgid "Device special files managed by man:devfs[5]" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1109 #, no-wrap msgid "`/etc/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1111 #, no-wrap msgid "System configuration files and scripts." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1112 #, no-wrap msgid "`/etc/defaults/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1114 #, no-wrap msgid "Default system configuration files. Refer to man:rc[8] for details." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1115 #, no-wrap msgid "`/etc/periodic/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1117 #, no-wrap msgid "Scripts that run daily, weekly, and monthly, via man:cron[8]. Refer to man:periodic[8] for details." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1118 #, no-wrap msgid "`/lib/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1120 #, no-wrap msgid "Critical system libraries needed for binaries in `/bin` and `/sbin`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1121 #, no-wrap msgid "`/libexec/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1123 #, no-wrap msgid "Critical system files" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1124 #, no-wrap msgid "`/media/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1126 #, no-wrap msgid "Contains subdirectories to be used as mount points for removable media such as CDs, USB drives, and floppy disks" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1127 #, no-wrap msgid "`/mnt/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1129 #, no-wrap msgid "Empty directory commonly used by system administrators as a temporary mount point." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1130 #, no-wrap msgid "`/net/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1132 #, no-wrap msgid "Automounted NFS shares; see man:auto_master[5]" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1133 #, no-wrap msgid "`/proc/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1135 #, no-wrap msgid "Process file system. Refer to man:procfs[5] for details." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1136 #, no-wrap msgid "`/rescue/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1138 #, no-wrap msgid "Statically linked programs for emergency recovery as described in man:rescue[8]." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1139 #, no-wrap msgid "`/root/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1141 #, no-wrap msgid "Home directory for the `root` account." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1142 #, no-wrap msgid "`/sbin/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1144 #, no-wrap msgid "System programs and administration utilities fundamental to both single-user and multi-user environments." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1145 #, no-wrap msgid "`/tmp/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1147 #, no-wrap msgid "Temporary files which are usually _not_ preserved across a system reboot. A memory-based file system is often mounted at `/tmp`. This can be automated using the tmpmfs-related variables of man:rc.conf[5] or with an entry in `/etc/fstab`; refer to man:mdmfs[8] for details." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1148 #, no-wrap msgid "`/usr/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1150 #, no-wrap msgid "The majority of user utilities and applications." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1151 #, no-wrap msgid "`/usr/bin/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1153 #, no-wrap msgid "Common utilities, programming tools, and applications." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1154 #, no-wrap msgid "`/usr/include/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1156 #, no-wrap msgid "Standard C include files." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1157 #, no-wrap msgid "`/usr/lib/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1159 #, no-wrap msgid "Archive libraries." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1160 #, no-wrap msgid "`/usr/libdata/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1162 #, no-wrap msgid "Miscellaneous utility data files." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1163 #, no-wrap msgid "`/usr/libexec/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1165 #, no-wrap msgid "System daemons and system utilities executed by other programs." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1166 #, no-wrap msgid "`/usr/local/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1168 #, no-wrap msgid "Local executables and libraries. Also used as the default destination for the FreeBSD ports framework. Within `/usr/local`, the general layout sketched out by man:hier[7] for `/usr` should be used. Exceptions are the man directory, which is directly under `/usr/local` rather than under `/usr/local/share`, and the ports documentation is in `share/doc/port`." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1169 #, no-wrap msgid "`/usr/ports/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1171 #, no-wrap msgid "The FreeBSD Ports Collection (optional)." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1172 #, no-wrap msgid "`/usr/sbin/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1174 #, no-wrap msgid "System daemons and system utilities executed by users." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1175 #, no-wrap msgid "`/usr/share/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1177 #, no-wrap msgid "Architecture-independent files." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1178 #, no-wrap msgid "`/usr/src/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1180 #, no-wrap msgid "BSD and/or local source files." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1181 #, no-wrap msgid "`/var/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1183 #, no-wrap msgid "Multi-purpose log, temporary, transient, and spool files." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1184 #, no-wrap msgid "`/var/log/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1186 #, no-wrap msgid "Miscellaneous system log files." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1187 #, no-wrap msgid "`/var/tmp/`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1189 #, no-wrap msgid "Temporary files which are usually preserved across a system reboot." msgstr "" #. type: Title == #: documentation/content/en/books/handbook/basics/_index.adoc:1192 #, no-wrap msgid "Disk Organization" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1197 msgid "" "The smallest unit of organization that FreeBSD uses to find files is the " "filename. Filenames are case-sensitive, which means that `readme.txt` and " "`README.TXT` are two separate files. FreeBSD does not use the extension of " "a file to determine whether the file is a program, document, or some other " "form of data." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1201 msgid "" "Files are stored in directories. A directory may contain no files, or it " "may contain many hundreds of files. A directory can also contain other " "directories, allowing a hierarchy of directories within one another in order " "to organize data." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1207 msgid "" "Files and directories are referenced by giving the file or directory name, " "followed by a forward slash, `/`, followed by any other directory names that " "are necessary. For example, if the directory `foo` contains a directory " "`bar` which contains the file `readme.txt`, the full name, or _path_, to the " "file is `foo/bar/readme.txt`. Note that this is different from Windows(R) " "which uses `\\` to separate file and directory names. FreeBSD does not use " "drive letters, or other drive names in the path. For example, one would not " "type `c:\\foo\\bar\\readme.txt` on FreeBSD." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:1209 #, no-wrap msgid "File systems" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1217 msgid "" "Directories and files are stored in a file system. Each file system " "contains exactly one directory at the very top level, called the _root " "directory_ for that file system. This root directory can contain other " "directories. One file system is designated the _root file system_ or `/`. " "Every other file system is _mounted_ under the root file system. No matter " "how many disks are on the FreeBSD system, every directory appears to be part " "of the same disk." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1220 msgid "" "Consider three file systems, called `A`, `B`, and `C`. Each file system has " "one root directory, which contains two other directories, called `A1`, `A2` " "(and likewise `B1`, `B2` and `C1`, `C2`)." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1224 msgid "" "Call `A` the root file system. If man:ls[1] is used to view the contents of " "this directory, it will show two subdirectories, `A1` and `A2`. The " "directory tree looks like this:" msgstr "" #. type: Positional ($1) AttributeList argument for macro 'image' #: documentation/content/en/books/handbook/basics/_index.adoc:1225 #: documentation/content/en/books/handbook/basics/_index.adoc:1230 #: documentation/content/en/books/handbook/basics/_index.adoc:1238 #, no-wrap msgid "Directory tree with the root directory and two subdirectories" msgstr "" #. type: Target for macro image #: documentation/content/en/books/handbook/basics/_index.adoc:1225 #, no-wrap msgid "example-dir1.png" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1229 msgid "" "A file system must be mounted on to a directory in another file system. " "When mounting file system `B` on to the directory `A1`, the root directory " "of `B` replaces `A1`, and the directories in `B` appear accordingly:" msgstr "" #. type: Target for macro image #: documentation/content/en/books/handbook/basics/_index.adoc:1230 #, no-wrap msgid "example-dir2.png" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1235 msgid "" "Any files that are in the `B1` or `B2` directories can be reached with the " "path `/A1/B1` or `/A1/B2` as necessary. Any files that were in `/A1` have " "been temporarily hidden. They will reappear if `B` is _unmounted_ from `A`." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1237 msgid "If `B` had been mounted on `A2` then the diagram would look like this:" msgstr "" #. type: Target for macro image #: documentation/content/en/books/handbook/basics/_index.adoc:1238 #, no-wrap msgid "example-dir3.png" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1241 msgid "and the paths would be `/A2/B1` and `/A2/B2` respectively." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1244 msgid "" "File systems can be mounted on top of one another. Continuing the last " "example, the `C` file system could be mounted on top of the `B1` directory " "in the `B` file system, leading to this arrangement:" msgstr "" #. type: Positional ($1) AttributeList argument for macro 'image' #: documentation/content/en/books/handbook/basics/_index.adoc:1245 #: documentation/content/en/books/handbook/basics/_index.adoc:1249 #, no-wrap msgid "A complex directory tree. With different subdirectories hanging from root." msgstr "" #. type: Target for macro image #: documentation/content/en/books/handbook/basics/_index.adoc:1245 #, no-wrap msgid "example-dir4.png" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1248 msgid "" "Or `C` could be mounted directly on to the `A` file system, under the `A1` " "directory:" msgstr "" #. type: Target for macro image #: documentation/content/en/books/handbook/basics/_index.adoc:1249 #, no-wrap msgid "example-dir5.png" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1253 msgid "" "It is entirely possible to have one large root file system, and not need to " "create any others. There are some drawbacks to this approach, and one " "advantage." msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:1254 #, no-wrap msgid "Benefits of Multiple File Systems" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1256 msgid "" "Different file systems can have different _mount options_. For example, the " "root file system can be mounted read-only, making it impossible for users to " "inadvertently delete or edit a critical file. Separating user-writable file " "systems, such as `/home`, from other file systems allows them to be mounted " "_nosuid_. This option prevents the _suid_/_guid_ bits on executables stored " "on the file system from taking effect, possibly improving security." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1257 msgid "" "FreeBSD automatically optimizes the layout of files on a file system, " "depending on how the file system is being used. So a file system that " "contains many small files that are written frequently will have a different " "optimization to one that contains fewer, larger files. By having one big " "file system this optimization breaks down." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1258 msgid "" "FreeBSD's file systems are robust if power is lost. However, a power loss at " "a critical point could still damage the structure of the file system. By " "splitting data over multiple file systems it is more likely that the system " "will still come up, making it easier to restore from backup as necessary." msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:1259 #, no-wrap msgid "Benefit of a Single File System" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1261 msgid "" "File systems are a fixed size. When creating a file system during the " "FreeBSD installation and giving it a specific size, it may be that one wants " "to make the partition bigger. This is not easily accomplished without " "backing up, recreating the file system with the new size, and then restoring " "the backed up data." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1268 msgid "" "FreeBSD features the man:growfs[8] command, which makes it possible to " "increase the size of file system on the fly, removing this limitation. A " "file system can only be expanded into free space in the partition in which " "it resides. If there is space after the partition, the partition can be " "expanded with man:gpart[8]. If the partition is the last one on a virtual " "disk, and the disk is expanded, the partition can then be expanded." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:1271 #, no-wrap msgid "Disk partitions" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1284 msgid "" "File systems are contained in _partitions_. Disks are divided into " "partitions using one of several partitioning schemes; see " "crossref:bsdinstall[bsdinstall-part-manual, Manual Partitioning]. The newer " "scheme is GPT; older BIOS-based computers use MBR. GPT supports division of " "a disk into partitions with a size, offset, and type. It supports a large " "number of partitions and partition types, and is recommended whenever its " "use is possible. GPT partitions use the disk name with a suffix, where the " "suffix is `p1` for the first partition, `p2` for the second, and so on. " "MBR, however, supports only a small number of partitions. The MBR " "partitions are known in FreeBSD as `slices`. Slices may be used for " "different operating systems. FreeBSD slices are subdivided into partitions " "using BSD labels (see man:bsdlabel[8])." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1290 msgid "" "Slice numbers follow the device name, prefixed with an `s`, starting at 1. " "So \"da0__s1__\" is the first slice on the first SCSI drive. There can only " "be four physical slices on a disk, but there can be logical slices inside " "physical slices of the appropriate type. These extended slices are numbered " "starting at 5, so \"ada0__s5__\" is the first extended slice on the first " "SATA disk. These devices are used by file systems that expect to occupy a " "slice." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1292 msgid "" "Each GPT or BSD partition can contain only one file system, which means that " "file systems are often described by either their typical mount point in the " "file system hierarchy, or the name of the partition they are contained in." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1297 msgid "" "FreeBSD also uses disk space for _swap space_ to provide _virtual memory_. " "This allows the computer to behave as though it has much more memory than it " "actually does. When FreeBSD runs out of memory, it moves some of the data " "that is not currently being used to the swap space, and moves it back in " "(moving something else out) when it needs it. This is called _paging_." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1299 msgid "Some BSD partitions have certain conventions associated with them." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1303 #, no-wrap msgid "Partition" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1305 #, no-wrap msgid "Convention" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1306 #, no-wrap msgid "`a`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1308 #, no-wrap msgid "Normally contains the root file system." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1309 #, no-wrap msgid "`b`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1311 #, no-wrap msgid "Normally contains swap space." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1312 #, no-wrap msgid "`c`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1314 #, no-wrap msgid "Normally the same size as the enclosing slice. This allows utilities that need to work on the entire slice, such as a bad block scanner, to work on the `c` partition. A file system would not normally be created on this partition." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1315 #, no-wrap msgid "`d`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1316 #, no-wrap msgid "Partition `d` used to have a special meaning associated with it, although that is now gone and `d` may work as any normal partition." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1321 msgid "" "Slices and \"dangerously dedicated\" physical drives contain BSD partitions, " "which are represented as letters from `a` to `h`. This letter is appended " "to the device name, so \"da0__a__\" is the `a` partition on the first `da` " "drive, which is \"dangerously dedicated\". \"ada1s3__e__\" is the fifth " "partition in the third slice of the second SATA disk drive." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1326 msgid "" "Finally, each disk on the system is identified. A disk name starts with a " "code that indicates the type of disk, and then a number, indicating which " "disk it is. Unlike partitions and slices, disk numbering starts at 0. " "Common codes are listed in crossref:basics[disks-naming,Disk Device Names]." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1330 msgid "" "When referring to a partition in a slice, include the disk name, `s`, the " "slice number, and then the partition letter. Examples are shown in " "crossref:basics[basics-disk-slice-part,Sample Disk, Slice, and Partition " "Names]. GPT partitions include the disk name, `p`, and then the partition " "number." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1332 msgid "" "crossref:basics[basics-concept-disk-model,Conceptual Model of a Disk] shows " "a conceptual model of a disk layout using MBR slices." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1337 msgid "" "When installing FreeBSD, configure the disk slices if using MBR, and create " "partitions within the slice to be used for FreeBSD. If using GPT, configure " "partitions for each file system. In either case, create a file system or " "swap space in each partition, and decide where each file system will be " "mounted. See man:gpart[8] for information on manipulating partitions." msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:1339 #, no-wrap msgid "Disk Device Names" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1343 #, no-wrap msgid "Drive Type" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1345 #, no-wrap msgid "Drive Device Name" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1346 #, no-wrap msgid "SATA and IDE hard drives" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1348 #, no-wrap msgid "`ada`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1349 #, no-wrap msgid "SCSI hard drives and USB storage devices" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1351 #, no-wrap msgid "`da`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1352 #, no-wrap msgid "NVMe storage" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1354 #, no-wrap msgid "`nvd` or `nda`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1355 #, no-wrap msgid "SATA and IDE CD-ROM drives" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1357 #: documentation/content/en/books/handbook/basics/_index.adoc:1360 #, no-wrap msgid "`cd`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1358 #, no-wrap msgid "SCSI CD-ROM drives" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1361 #, no-wrap msgid "Floppy drives" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1363 #, no-wrap msgid "`fd`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1364 #, no-wrap msgid "SCSI tape drives" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1366 #, no-wrap msgid "`sa`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1367 #, no-wrap msgid "RAID drives" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1368 #, no-wrap msgid "Examples include `aacd` for Adaptec(R) AdvancedRAID, `mlxd` and `mlyd` for Mylex(R), `amrd` for AMI MegaRAID(R), `idad` for Compaq Smart RAID, `twed` for 3ware(R) RAID." msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:1373 #, no-wrap msgid "Sample Disk, Slice, and Partition Names" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1378 #, no-wrap msgid "Name" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1380 #, no-wrap msgid "Meaning" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1381 #, no-wrap msgid "`ada0s1a`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1383 #, no-wrap msgid "The first partition (`a`) on the first slice (`s1`) on the first SATA disk (`ada0`)." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1384 #, no-wrap msgid "`da1s2e`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1385 #, no-wrap msgid "The fifth partition (`e`) on the second slice (`s2`) on the second SCSI disk (`da1`)." msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:1389 #, no-wrap msgid "Conceptual Model of a Disk" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1396 msgid "" "This diagram shows FreeBSD's view of the first SATA disk attached to the " "system. Assume that the disk is 250 GB in size, and contains an 80 GB slice " "and a 170 GB slice (MS-DOS(R) partitions). The first slice contains a " "Windows(R) NTFS file system, `C:`, and the second slice contains a FreeBSD " "installation. This example FreeBSD installation has four data partitions " "and a swap partition." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1400 msgid "" "The four partitions each hold a file system. Partition `a` is used for the " "root file system, `d` for `/var/`, `e` for `/tmp/`, and `f` for `/usr/`. " "Partition letter `c` refers to the entire slice, and so is not used for " "ordinary partitions." msgstr "" #. type: Positional ($1) AttributeList argument for macro 'image' #: documentation/content/en/books/handbook/basics/_index.adoc:1401 #, no-wrap msgid "Layout of a shared drive between Windows and FreeBSD" msgstr "" #. type: Target for macro image #: documentation/content/en/books/handbook/basics/_index.adoc:1401 #, no-wrap msgid "disk-layout.png" msgstr "" #. type: Title == #: documentation/content/en/books/handbook/basics/_index.adoc:1405 #, no-wrap msgid "Mounting and Unmounting File Systems" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1408 msgid "" "The file system is best visualized as a tree, rooted, as it were, at `/`. `/" "dev`, `/usr`, and the other directories in the root directory are branches, " "which may have their own branches, such as `/usr/local`, and so on." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1412 msgid "" "There are various reasons to house some of these directories on separate " "file systems. `/var` contains the directories `log/`, `spool/`, and various " "types of temporary files, and as such, may get filled up. Filling up the " "root file system is not a good idea, so splitting `/var` from `/` is often " "favorable." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1414 msgid "" "Another common reason to contain certain directory trees on other file " "systems is if they are to be housed on separate physical disks, or are " "separate virtual disks, such as Network File System mounts, described in " "crossref:network-servers[network-nfs,“Network File System (NFS)”], or CDROM " "drives." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:1416 #, no-wrap msgid "The fstab File" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1420 msgid "" "During the boot process (crossref:boot[boot,The FreeBSD Booting Process]), " "file systems listed in `/etc/fstab` are automatically mounted except for the " "entries containing `noauto`. This file contains entries in the following " "format:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1424 #, no-wrap msgid "device /mount-point fstype options dumpfreq passno\n" msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:1426 #, no-wrap msgid "`device`" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1428 msgid "" "An existing device name as explained in crossref:basics[disks-naming,Disk " "Device Names]." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:1429 #, no-wrap msgid "`mount-point`" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1431 msgid "An existing directory on which to mount the file system." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:1432 #, no-wrap msgid "`fstype`" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1435 msgid "" "The file system type to pass to man:mount[8]. The default FreeBSD file " "system is `ufs`." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:1436 #, no-wrap msgid "`options`" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1440 msgid "" "Either `rw` for read-write file systems, or `ro` for read-only file systems, " "followed by any other options that may be needed. A common option is " "`noauto` for file systems not normally mounted during the boot sequence. " "Other options are listed in man:mount[8]." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:1441 #, no-wrap msgid "`dumpfreq`" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1444 msgid "" "Used by man:dump[8] to determine which file systems require dumping. If the " "field is missing, a value of zero is assumed." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:1445 #, no-wrap msgid "`passno`" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1451 msgid "" "Determines the order in which UFS file systems should be checked by " "man:fsck[8] after a reboot. File systems that should be skipped should have " "their `passno` set to zero. The root file system needs to be checked before " "everything else and should have its `passno` set to one. The other file " "systems should be set to values greater than one. If more than one file " "system has the same `passno`, man:fsck[8] will attempt to check file systems " "in parallel if possible." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1453 msgid "" "Refer to man:fstab[5] for more information on the format of `/etc/fstab` and " "its options." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:1455 #, no-wrap msgid "Using man:mount[8]" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1459 msgid "" "File systems are mounted using man:mount[8]. The most basic syntax is as " "follows:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1465 #, no-wrap msgid "# mount device mountpoint\n" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1469 msgid "" "A file system listed in `/etc/fstab` can also be mounted by providing just " "the mountpoint." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1472 msgid "" "This command provides many options which are described in man:mount[8]. The " "most commonly used options include:" msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:1473 #, no-wrap msgid "Mount Options" msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:1474 #, no-wrap msgid "`-a`" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1476 msgid "" "Mount all the file systems listed in `/etc/fstab`, except those marked as " "\"noauto\", excluded by the `-t` flag, or those that are already mounted." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:1477 #, no-wrap msgid "`-d`" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1480 msgid "" "Do everything except for the actual mount system call. This option is " "useful in conjunction with the `-v` flag to determine what man:mount[8] is " "actually trying to do." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:1481 #, no-wrap msgid "`-f`" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1483 msgid "" "Force the mount of an unclean file system (dangerous), or the revocation of " "write access when downgrading a file system's mount status from read-write " "to read-only." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:1484 #, no-wrap msgid "`-r`" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1487 msgid "Mount the file system read-only. This is identical to using `-o ro`." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:1488 #, no-wrap msgid "``-t _fstype_``" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1491 msgid "" "Mount the specified file system type or mount only file systems of the given " "type, if `-a` is included. \"ufs\" is the default file system type." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:1492 #, no-wrap msgid "`-u`" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1494 msgid "Update mount options on the file system." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:1495 #, no-wrap msgid "`-v`" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1497 msgid "Be verbose." msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:1498 #, no-wrap msgid "`-w`" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1500 msgid "Mount the file system read-write." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1502 msgid "The following options can be passed to `-o` as a comma-separated list:" msgstr "" #. type: Labeled list #: documentation/content/en/books/handbook/basics/_index.adoc:1503 #, no-wrap msgid "nosuid" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1506 msgid "" "Do not interpret setuid or setgid flags on the file system. This is also a " "useful security option." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:1508 #, no-wrap msgid "Using man:umount[8]" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1512 msgid "" "To unmount a file system use man:umount[8]. This command takes one " "parameter which can be a mountpoint, device name, `-a` or `-A`." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1515 msgid "" "All forms take `-f` to force unmounting, and `-v` for verbosity. Be warned " "that `-f` is not generally a good idea as it might crash the computer or " "damage data on the file system." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1518 msgid "" "To unmount all mounted file systems, or just the file system types listed " "after `-t`, use `-a` or `-A`. Note that `-A` does not attempt to unmount " "the root file system." msgstr "" #. type: Title == #: documentation/content/en/books/handbook/basics/_index.adoc:1520 #, no-wrap msgid "Processes and Daemons" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1525 msgid "" "FreeBSD is a multi-tasking operating system. Each program running at any " "one time is called a _process_. Every running command starts at least one " "new process and there are a number of system processes that are run by " "FreeBSD." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1531 msgid "" "Each process is uniquely identified by a number called a _process ID_ " "(PID). Similar to files, each process has one owner and group, and the " "owner and group permissions are used to determine which files and devices " "the process can open. Most processes also have a parent process that " "started them. For example, the shell is a process, and any command started " "in the shell is a process which has the shell as its parent process. The " "exception is a special process called man:init[8] which is always the first " "process to start at boot time and which always has a PID of `1`." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1538 msgid "" "Some programs are not designed to be run with continuous user input and " "disconnect from the terminal at the first opportunity. For example, a web " "server responds to web requests, rather than user input. Mail servers are " "another example of this type of application. These types of programs are " "known as _daemons_. The term daemon comes from Greek mythology and " "represents an entity that is neither good nor evil, and which invisibly " "performs useful tasks. This is why the BSD mascot is the cheerful-looking " "daemon with sneakers and a pitchfork." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1544 msgid "" "There is a convention to name programs that normally run as daemons with a " "trailing \"d\". For example, BIND is the Berkeley Internet Name Domain, but " "the actual program that executes is `named`. The Apache web server program " "is `httpd` and the line printer spooling daemon is `lpd`. This is only a " "naming convention. For example, the main mail daemon for the Sendmail " "application is `sendmail`, and not `maild`." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:1545 #, no-wrap msgid "Viewing Processes" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1550 msgid "" "To see the processes running on the system, use man:ps[1] or man:top[1]. To " "display a static list of the currently running processes, their PIDs, how " "much memory they are using, and the command they were started with, use " "man:ps[1]. To display all the running processes and update the display " "every few seconds in order to interactively see what the computer is doing, " "use man:top[1]." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1553 msgid "" "By default, man:ps[1] only shows the commands that are running and owned by " "the user. For example:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1557 #, no-wrap msgid "% ps\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1566 #, no-wrap msgid "" " PID TT STAT TIME COMMAND\n" "8203 0 Ss 0:00.59 /bin/csh\n" "8895 0 R+ 0:00.00 ps\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1576 msgid "" "The output from man:ps[1] is organized into a number of columns. The `PID` " "column displays the process ID. PIDs are assigned starting at 1, go up to " "99999, then wrap around back to the beginning. However, a PID is not " "reassigned if it is already in use. The `TT` column shows the tty the " "program is running on and `STAT` shows the program's state. `TIME` is the " "amount of time the program has been running on the CPU. This is usually not " "the elapsed time since the program was started, as most programs spend a lot " "of time waiting for things to happen before they need to spend time on the " "CPU. Finally, `COMMAND` is the command that was used to start the program." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1579 msgid "" "A number of different options are available to change the information that " "is displayed. One of the most useful sets is `auxww`, where `a` displays " "information about all the running processes of all users, `u` displays the " "username and memory usage of the process' owner, `x` displays information " "about daemon processes, and `ww` causes man:ps[1] to display the full " "command line for each process, rather than truncating it once it gets too " "long to fit on the screen." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1581 msgid "The output from man:top[1] is similar:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1585 #, no-wrap msgid "% top\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1597 #, no-wrap msgid "" "last pid: 9609; load averages: 0.56, 0.45, 0.36 up 0+00:20:03 10:21:46\n" "107 processes: 2 running, 104 sleeping, 1 zombie\n" "CPU: 6.2% user, 0.1% nice, 8.2% system, 0.4% interrupt, 85.1% idle\n" "Mem: 541M Active, 450M Inact, 1333M Wired, 4064K Cache, 1498M Free\n" "ARC: 992M Total, 377M MFU, 589M MRU, 250K Anon, 5280K Header, 21M Other\n" "Swap: 2048M Total, 2048M Free\n" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1610 #, no-wrap msgid "" " PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND\n" " 557 root 1 -21 r31 136M 42296K select 0 2:20 9.96% Xorg\n" " 8198 dru 2 52 0 449M 82736K select 3 0:08 5.96% kdeinit4\n" " 8311 dru 27 30 0 1150M 187M uwait 1 1:37 0.98% firefox\n" " 431 root 1 20 0 14268K 1728K select 0 0:06 0.98% moused\n" " 9551 dru 1 21 0 16600K 2660K CPU3 3 0:01 0.98% top\n" " 2357 dru 4 37 0 718M 141M select 0 0:21 0.00% kdeinit4\n" " 8705 dru 4 35 0 480M 98M select 2 0:20 0.00% kdeinit4\n" " 8076 dru 6 20 0 552M 113M uwait 0 0:12 0.00% soffice.bin\n" " 2623 root 1 30 10 12088K 1636K select 3 0:09 0.00% powerd\n" " 2338 dru 1 20 0 440M 84532K select 1 0:06 0.00% kwin\n" " 1427 dru 5 22 0 605M 86412K select 1 0:05 0.00% kdeinit4\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1616 msgid "" "The output is split into two sections. The header (the first five or six " "lines) shows the PID of the last process to run, the system load averages " "(which are a measure of how busy the system is), the system uptime (time " "since the last reboot) and the current time. The other figures in the " "header relate to how many processes are running, how much memory and swap " "space has been used, and how much time the system is spending in different " "CPU states. If the ZFS file system module has been loaded, an `ARC` line " "indicates how much data was read from the memory cache instead of from disk." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1621 msgid "" "Below the header is a series of columns containing similar information to " "the output from man:ps[1], such as the PID, username, amount of CPU time, " "and the command that started the process. By default, man:top[1] also " "displays the amount of memory space taken by the process. This is split " "into two columns: one for total size and one for resident size. Total size " "is how much memory the application has needed and the resident size is how " "much it is actually using now." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1624 msgid "" "man:top[1] automatically updates the display every two seconds. A different " "interval can be specified with `-s`." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:1626 #, no-wrap msgid "Killing Processes" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1632 msgid "" "One way to communicate with any running process or daemon is to send a " "_signal_ using man:kill[1]. There are a number of different signals; some " "have a specific meaning while others are described in the application's " "documentation. A user can only send a signal to a process they own and " "sending a signal to someone else's process will result in a permission " "denied error. The exception is the `root` user, who can send signals to " "anyone's processes." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1636 msgid "" "The operating system can also send a signal to a process. If an application " "is badly written and tries to access memory that it is not supposed to, " "FreeBSD will send the process the \"Segmentation Violation\" signal " "(`SIGSEGV`). If an application has been written to use the man:alarm[3] " "system call to be alerted after a period of time has elapsed, it will be " "sent the \"Alarm\" signal (`SIGALRM`)." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1640 msgid "" "Two signals can be used to stop a process: `SIGTERM` and `SIGKILL`. " "`SIGTERM` is the polite way to kill a process as the process can read the " "signal, close any log files it may have open, and attempt to finish what it " "is doing before shutting down. In some cases, a process may ignore " "`SIGTERM` if it is in the middle of some task that cannot be interrupted." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1643 msgid "" "`SIGKILL` cannot be ignored by a process. Sending a `SIGKILL` to a process " "will usually stop that process there and then. footnote:[There are a few " "tasks that cannot be interrupted. For example, if the process is trying to " "read from a file that is on another computer on the network, and the other " "computer is unavailable, the process is said to be uninterruptible. " "Eventually the process will time out, typically after two minutes. As soon " "as this time out occurs the process will be killed.]." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1646 msgid "" "Other commonly used signals are `SIGHUP`, `SIGUSR1`, and `SIGUSR2`. Since " "these are general purpose signals, different applications will respond " "differently." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1651 msgid "" "For example, after changing a web server's configuration file, the web " "server needs to be told to re-read its configuration. Restarting `httpd` " "would result in a brief outage period on the web server. Instead, send the " "daemon the `SIGHUP` signal. Be aware that different daemons will have " "different behavior, so refer to the documentation for the daemon to " "determine if `SIGHUP` will achieve the desired results." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1658 msgid "" "Killing a random process on the system is a bad idea. In particular, " "man:init[8], PID 1, is special. Running `/bin/kill -s KILL 1` is a quick, " "and unrecommended, way to shutdown the system. _Always_ double check the " "arguments to man:kill[1] _before_ pressing kbd:[Return]." msgstr "" #. type: Title == #: documentation/content/en/books/handbook/basics/_index.adoc:1661 #, no-wrap msgid "Shells" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1668 msgid "" "A _shell_ provides a command line interface for interacting with the " "operating system. A shell receives commands from the input channel and " "executes them. Many shells provide built in functions to help with everyday " "tasks such as file management, file globbing, command line editing, command " "macros, and environment variables. FreeBSD comes with several shells, " "including the Bourne shell (man:sh[1]) and the extended C shell " "(man:tcsh[1]). Other shells are available from the FreeBSD Ports " "Collection, such as `zsh` and `bash`." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1673 msgid "" "The shell that is used is really a matter of taste. A C programmer might " "feel more comfortable with a C-like shell such as man:tcsh[1]. A Linux(R) " "user might prefer `bash`. Each shell has unique properties that may or may " "not work with a user's preferred working environment, which is why there is " "a choice of which shell to use." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1678 msgid "" "One common shell feature is filename completion. After a user types the " "first few letters of a command or filename and presses kbd:[Tab], the shell " "completes the rest of the command or filename. Consider two files called " "`foobar` and `football`. To delete `foobar`, the user might type `rm foo` " "and press kbd:[Tab] to complete the filename." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1684 msgid "" "But the shell only shows `rm foo`. It was unable to complete the filename " "because both `foobar` and `football` start with `foo`. Some shells sound a " "beep or show all the choices if more than one name matches. The user must " "then type more characters to identify the desired filename. Typing a `t` " "and pressing kbd:[Tab] again is enough to let the shell determine which " "filename is desired and fill in the rest." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1690 msgid "" "Another feature of the shell is the use of environment variables. " "Environment variables are a variable/key pair stored in the shell's " "environment. This environment can be read by any program invoked by the " "shell, and thus contains a lot of program configuration. " "crossref:basics[shell-env-vars,Common Environment Variables] provides a list " "of common environment variables and their meanings. Note that the names of " "environment variables are always in uppercase." msgstr "" #. type: Block title #: documentation/content/en/books/handbook/basics/_index.adoc:1692 #, no-wrap msgid "Common Environment Variables" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1696 #, no-wrap msgid "Variable" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1699 #, no-wrap msgid "`USER`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1701 #, no-wrap msgid "Current logged in user's name." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1702 #, no-wrap msgid "`PATH`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1704 #, no-wrap msgid "Colon-separated list of directories to search for binaries." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1705 #, no-wrap msgid "`DISPLAY`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1707 #, no-wrap msgid "Network name of the Xorg display to connect to, if available." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1708 #, no-wrap msgid "`SHELL`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1710 #, no-wrap msgid "The current shell." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1711 #, no-wrap msgid "`TERM`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1713 #, no-wrap msgid "The name of the user's type of terminal. Used to determine the capabilities of the terminal." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1714 #, no-wrap msgid "`TERMCAP`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1716 #, no-wrap msgid "Database entry of the terminal escape codes to perform various terminal functions." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1717 #, no-wrap msgid "`OSTYPE`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1719 #, no-wrap msgid "Type of operating system." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1720 #, no-wrap msgid "`MACHTYPE`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1722 #, no-wrap msgid "The system's CPU architecture." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1723 #, no-wrap msgid "`EDITOR`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1725 #, no-wrap msgid "The user's preferred text editor." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1726 #, no-wrap msgid "`PAGER`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1728 #, no-wrap msgid "The user's preferred utility for viewing text one page at a time." msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1729 #, no-wrap msgid "`MANPATH`" msgstr "" #. type: Table #: documentation/content/en/books/handbook/basics/_index.adoc:1730 #, no-wrap msgid "Colon-separated list of directories to search for manual pages." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1736 msgid "" "How to set an environment variable differs between shells. In man:tcsh[1] " "and man:csh[1], use `setenv` to set environment variables. In man:sh[1] and " "`bash`, use `export` to set the current environment variables. This example " "sets the default `EDITOR` to `/usr/local/bin/emacs` for the man:tcsh[1] " "shell:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1740 #, no-wrap msgid "% setenv EDITOR /usr/local/bin/emacs\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1743 msgid "The equivalent command for `bash` would be:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1747 #, no-wrap msgid "% export EDITOR=\"/usr/local/bin/emacs\"\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1751 msgid "" "To expand an environment variable in order to see its current setting, type " "a `$` character in front of its name on the command line. For example, " "`echo $TERM` displays the current `$TERM` setting." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1756 msgid "" "Shells treat special characters, known as meta-characters, as special " "representations of data. The most common meta-character is `\\*`, which " "represents any number of characters in a filename. Meta-characters can be " "used to perform filename globbing. For example, `echo *` is equivalent to " "`ls` because the shell takes all the files that match `*` and `echo` lists " "them on the command line." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1759 msgid "" "To prevent the shell from interpreting a special character, escape it from " "the shell by starting it with a backslash (`\\`). For example, `echo $TERM` " "prints the terminal setting whereas `echo \\$TERM` literally prints the " "string `$TERM`." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:1761 #, no-wrap msgid "Changing the Shell" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1766 msgid "" "The easiest way to permanently change the default shell is to use `chsh`. " "Running this command will open the editor that is configured in the `EDITOR` " "environment variable, which by default is set to man:vi[1]. Change the " "`Shell:` line to the full path of the new shell." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1769 msgid "" "Alternately, use `chsh -s` which will set the specified shell without " "opening an editor. For example, to change the shell to `bash`:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1773 #, no-wrap msgid "% chsh -s /usr/local/bin/bash\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1777 msgid "" "Enter the password at the prompt and press kbd:[Return] to change the " "shell. Log off and log in again to start using the new shell." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1783 msgid "" "The new shell _must_ be present in `/etc/shells`. If the shell was " "installed from the FreeBSD Ports Collection as described in " "crossref:ports[ports,Installing Applications: Packages and Ports], it should " "be automatically added to this file. If it is missing, add it using this " "command, replacing the path with the path of the shell:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1787 #, no-wrap msgid "# echo /usr/local/bin/bash >> /etc/shells\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1790 msgid "Then, rerun man:chsh[1]." msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:1792 #, no-wrap msgid "Advanced Shell Techniques" msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1796 msgid "" "The UNIX(R) shell is not just a command interpreter, it acts as a powerful " "tool which allows users to execute commands, redirect their output, redirect " "their input and chain commands together to improve the final command " "output. When this functionality is mixed with built in commands, the user " "is provided with an environment that can maximize efficiency." msgstr "" #. type: delimited block = 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1799 msgid "" "Shell redirection is the action of sending the output or the input of a " "command into another command or into a file. To capture the output of the " "man:ls[1] command, for example, into a file, redirect the output:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1803 #, no-wrap msgid "% ls > directory_listing.txt\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1808 msgid "" "The directory contents will now be listed in `directory_listing.txt`. Some " "commands can be used to read input, such as man:sort[1]. To sort this " "listing, redirect the input:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1812 #, no-wrap msgid "% sort < directory_listing.txt\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1816 msgid "" "The input will be sorted and placed on the screen. To redirect that input " "into another file, one could redirect the output of man:sort[1] by mixing " "the direction:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1820 #, no-wrap msgid "% sort < directory_listing.txt > sorted.txt\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1828 msgid "" "In all of the previous examples, the commands are performing redirection " "using file descriptors. Every UNIX(R) system has file descriptors, which " "include standard input (stdin), standard output (stdout), and standard error " "(stderr). Each one has a purpose, where input could be a keyboard or a " "mouse, something that provides input. Output could be a screen or paper in " "a printer. And error would be anything that is used for diagnostic or error " "messages. All three are considered I/O based file descriptors and sometimes " "considered streams." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1831 msgid "" "Through the use of these descriptors, the shell allows output and input to " "be passed around through various commands and redirected to or from a file. " "Another method of redirection is the pipe operator." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1834 msgid "" "The UNIX(R) pipe operator, \"|\" allows the output of one command to be " "directly passed or directed to another program. Basically, a pipe allows " "the standard output of a command to be passed as standard input to another " "command, for example:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1838 #, no-wrap msgid "% cat directory_listing.txt | sort | less\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1842 msgid "" "In that example, the contents of `directory_listing.txt` will be sorted and " "the output passed to man:less[1]. This allows the user to scroll through " "the output at their own pace and prevent it from scrolling off the screen." msgstr "" #. type: Title == #: documentation/content/en/books/handbook/basics/_index.adoc:1844 #, no-wrap msgid "Text Editors" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1848 msgid "" "Most FreeBSD configuration is done by editing text files, so it is a good " "idea to become familiar with a text editor. FreeBSD comes with a few as " "part of the base system, and many more are available in the Ports Collection." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1855 msgid "" "A simple editor to learn is man:ee[1], which stands for easy editor. To " "start this editor, type `ee _filename_` where _filename_ is the name of the " "file to be edited. Once inside the editor, all of the commands for " "manipulating the editor's functions are listed at the top of the display. " "The caret (`^`) represents kbd:[Ctrl], so `^e` expands to kbd:[Ctrl+e]. To " "leave man:ee[1], press kbd:[Esc], then choose the \"leave editor\" option " "from the main menu. The editor will prompt to save any changes if the file " "has been modified." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1860 msgid "" "FreeBSD also comes with more powerful text editors, such as man:vi[1], as " "part of the base system. Other editors, like package:editors/emacs[] and " "package:editors/vim[], are part of the FreeBSD Ports Collection. These " "editors offer more functionality at the expense of being more complicated to " "learn. Learning a more powerful editor such as vim or Emacs can save more " "time in the long run." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1864 msgid "" "Many applications which modify files or require typed input will " "automatically open a text editor. To change the default editor, set the " "`EDITOR` environment variable as described in crossref:basics[shells, " "Shells]." msgstr "" #. type: Title == #: documentation/content/en/books/handbook/basics/_index.adoc:1866 #, no-wrap msgid "Devices and Device Nodes" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1871 msgid "" "A device is a term used mostly for hardware-related activities in a system, " "including disks, printers, graphics cards, and keyboards. When FreeBSD " "boots, the majority of the boot messages refer to devices being detected. A " "copy of the boot messages is saved to `/var/run/dmesg.boot`." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1874 msgid "" "Each device has a device name and number. For example, `ada0` is the first " "SATA hard drive, while `kbd0` represents the keyboard." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1876 msgid "" "Most devices in FreeBSD must be accessed through special files called device " "nodes, which are located in `/dev`." msgstr "" #. type: Title == #: documentation/content/en/books/handbook/basics/_index.adoc:1878 #, no-wrap msgid "Manual Pages" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1883 msgid "" "The most comprehensive documentation on FreeBSD is in the form of manual " "pages. Nearly every program on the system comes with a short reference " "manual explaining the basic operation and available arguments. These " "manuals can be viewed using `man`:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1887 #, no-wrap msgid "% man command\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1891 msgid "" "where _command_ is the name of the command to learn about. For example, to " "learn more about man:ls[1], type:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1895 #, no-wrap msgid "% man ls\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1899 msgid "" "Manual pages are divided into sections which represent the type of topic. " "In FreeBSD, the following sections are available:" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1901 msgid "User commands." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1902 msgid "System calls and error numbers." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1903 msgid "Functions in the C libraries." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1904 msgid "Device drivers." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1905 msgid "File formats." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1906 msgid "Games and other diversions." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1907 msgid "Miscellaneous information." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1908 msgid "System maintenance and operation commands." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1909 msgid "System kernel interfaces." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1913 msgid "" "In some cases, the same topic may appear in more than one section of the " "online manual. For example, there is a `chmod` user command and a `chmod()` " "system call. To tell man:man[1] which section to display, specify the " "section number:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1917 #, no-wrap msgid "% man 1 chmod\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1921 msgid "" "This will display the manual page for the user command man:chmod[1]. " "References to a particular section of the online manual are traditionally " "placed in parenthesis in written documentation, so man:chmod[1] refers to " "the user command and man:chmod[2] refers to the system call." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1923 msgid "" "If the name of the manual page is unknown, use `man -k` to search for " "keywords in the manual page descriptions:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1927 #, no-wrap msgid "% man -k mail\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1931 msgid "" "This command displays a list of commands that have the keyword \"mail\" in " "their descriptions. This is equivalent to using man:apropos[1]." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1933 msgid "To read the descriptions for all of the commands in `/usr/sbin`, type:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1938 #, no-wrap msgid "" "% cd /usr/sbin\n" "% man -f * | more\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1941 msgid "or" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1946 #, no-wrap msgid "" "% cd /usr/sbin\n" "% whatis * |more\n" msgstr "" #. type: Title === #: documentation/content/en/books/handbook/basics/_index.adoc:1949 #, no-wrap msgid "GNU Info Files" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1954 msgid "" "FreeBSD includes several applications and utilities produced by the Free " "Software Foundation (FSF). In addition to manual pages, these programs may " "include hypertext documents called `info` files. These can be viewed using " "man:info[1] or, if package:editors/emacs[] is installed, the info mode of " "emacs." msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1956 msgid "To use man:info[1], type:" msgstr "" #. type: delimited block . 4 #: documentation/content/en/books/handbook/basics/_index.adoc:1960 #, no-wrap msgid "% info\n" msgstr "" #. type: Plain text #: documentation/content/en/books/handbook/basics/_index.adoc:1963 msgid "" "For a brief introduction, type `h`. For a quick command reference, type `?`." msgstr ""