Как добавить информацию о пользователе при создании пользователя?

Где я могу учиться, в основном, как настроить их?

Для установки сценарий, который выполняет команды, просто создайте файл (например. MyCmds.sh) с Вашим редактором и пишут некоторые команды, которые Вы хотите выполнить. Например:

#!/bin/bash
# This is a quote, the next line will output "Hello World"
echo "Hello World"

Теперь необходимо сделать этот исполняемый файл файла путем установки x флаг (используют Ваш терминал для этого):

$ chmod +x MyCmds.sh

Теперь можно работать, это как это в терминале (не забывайте продвижение ./):

$ ./MyCmds.sh

Необходимо видеть Hello World.

Кроме того, как я могу сделать тот выполненным при запуске?

Для запущения этого скрипта при запуске необходимо поместить команды или сценарий с абсолютным путем (например. /path/to/my/script/MyCmds.sh), в текстовый файл /etc/rc.local (Иногда существует exit 0 в конце Ваши команды имеют быть выше той строки).

PS Является оболочкой и терминалом/командной строкой то же?

Да (и возможно No). Я предполагаю, что Вы имеете в виду нормальную командную строку, где Вы вводите в своих командах и с оболочкой sripts, действительно ли я прав? Это всегда зависит от Вашей установки. Если Вы запускаете скрипт с #!/bin/bash (первые два Синье называют shebang) в первой строке каждый после строки будет передан программной оболочке, расположенной в /bin/bash. Что Вы видите, как Ваша командная строка, возможно, /bin/bash или /bin/shell или ... (Они отличаются своими функциями). Можно проверить это путем рассмотрения файла /etc/passwd. После того, как Ваше имя пользователя Linux там должно обозначать программа Вашу командную строку.

2
14.10.2014, 08:38
2 ответа

Посмотрите на MAN USERMOD , он показывает опцию -c, которая используется для изменения поля комментария для учетной записи в / etc / passwd .

Пример:

usermod -c "raspberry pi user account" pi

Чтобы обновить поле Comments для учетной записи пользователя «PI».

1
27.01.2020, 22:05

Большинство команд могут работать с вводом, который является либо файлом, который им требуется открыть для ввода, либо потоком данных, который передается команде через STDIN.

Когда содержимое cat file.txt передается другой команде через канал ( | ), выходные данные через STDOUT, которые передаются в канал на левой стороне, настраиваются и подаются в команду, которая находится на правой стороне STDIN трубопровода.

Если содержимое не передается через STDOUT - > STDIN через канал, команды могут получать данные, открывая файлы, передаваемые по имени через аргументы командной строки.

Примеры

Отправка выходных данных в STDOUT.

$ cat file 
1
2
3
4
5

Выход из файла cat передается через STDOUT в STDIN grep через канал.

$ cat file | grep 5
5

Обработка файла в качестве аргумента командной строки.

$ grep 5 file 
5

Обработка содержимого файла непосредственно через STDIN.

$ grep 5 < <(cat file)
5

Здесь я демонстрирую, что содержимое файла может быть направлено в grep через STDIN выше.

-121--133869-

Этот вопрос вызвал у меня интерес, и я хотел следовать подходу, который я не смог точно выяснить и получил замечательную помощь после того, как я разместил в качестве другого вопроса . Вы можете понять подход, который я пытаюсь следовать из вопроса, который я опубликовал.

Я получил еще 2 решения для этой проблемы (одно из ответа Гнуца , которое является решением perl , и другое из решения Джона в сочетании с моим решением).

#The variable appended_input will remove spaces/tabs and just append the rows. 
#Modify the file name in this line. Here I use inputfile as the filename. 

appended_input=$(column -s '\t' inputfile | tr -d '[:space:]') ;

#The array variable will store each column-wise value as an array element.  
#I use sort to find the number of unique elements.

array=($(
    for ((i=0; i<6; i++))
    do
        new=${appended_input:$i:1}
        for ((j=i+6; j<${#appended_input}; j=j+6))
        do 
            new="$new${appended_input:$j:1}"
        done
        echo "$new"
    done
    )) | echo "${array[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' '

Тестирование

Мой входной файл выглядит следующим образом.

1 0 0 1 0 0
0 1 1 0 0 0
1 1 1 1 1 0
1 0 0 1 0 1
1 0 0 1 0 1

После выполнения вышеупомянутого сценария, я получаю выходные данные как,

00011 00100 01100 10111

Вы можете иметь wc -w в качестве окончательного канала, и вы получите выходные данные как только 4 вместо уникальных значений столбцов, как выше.

-121--59021-

Можно изменить поле, отредактировав файл, или можно использовать usermod -c , хотя в настоящее время оно называется полем comment в man 5 passwd , это было не всегда, это было поле GECOS в UNIX название не отражает его использования: предоставление общей информации.

Правильное заполнение представляет собой разделенный запятыми список из четырех (возможных пустых) последовательностей. Вы по-прежнему видите это в том, как некоторые программы создают эту часть записи passwd, предварительно заполняя ее с помощью UserName,,, .

Первое из этих полей должно содержать полное имя пользователя (или имя программы, если оно используется для демона и т.д.); второе физическое местоположение; третий (офисный) телефон; и четвертый домашний телефон (иногда телекс/факс).

Программы, такие как finger , могут использоваться для отображения информации о лицах, включая структурированное содержимое этого поля. Я фактически использовал эту функцию (с желтыми страницами для получения информации на всех рабочих станциях) до появления LDAP и личных адресных книг.

2
27.01.2020, 22:05

Теги

Похожие вопросы