Algumas coisas:
-
O comando
sudoé para se elevar a um nível mais alto de credenciais para um comando ou conjunto de comandos, não para obter acesso a um diretório com o qual você (1) não seja o proprietário, (2) em um grupo que tenha permissões de leitura para esse diretório, ou (3) o diretório não tenha as outras permissões abertas para o mundo. -
O arquivo
/etc/sudoersé o arquivo que contém todas as regras para um determinado sistema e estipula quais usuários, grupos de usuários, podem executar quais comandos de uma maneira elevada, comoroot, normalmente, ou algum outro conta de usuário. Normalmente você NÃO quer editar esse arquivo diretamente, embora seja possível, é melhor não fazê-lo. -
O comando
visudoé a maneira prescrita para editar o arquivo/etc/sudoers. -
Se você quiser ver quais credenciais sudo um usuário tem acesso, a maneira mais simples é se tornar esse usuário e executar o comando
sudo -l.$ sudo -l Matching Defaults entries for saml on this host: env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin User saml may run the following commands on this host: (ALL) ALL (root) NOPASSWD: /usr/lib/jupiter/scripts/bluetooth, (root) /usr/lib/jupiter/scripts/cpu-control, (root) /usr/lib/jupiter/scripts/resolutions, (root) /usr/lib/jupiter/scripts/rotate, (root) /usr/lib/jupiter/scripts/touchpad, (root) /usr/lib/jupiter/scripts/vga-out, (root) /usr/lib/jupiter/scripts/wifi
acesso por roda
Acredito que você esteja se referindo ao grupo de usuários wheel , que é uma maneira antiga (que eu saiba) de conceder permissões aos usuários para se tornarem root por meio de su - . Este artigo faz um bom trabalho ao discutir o uso desse grupo, intitulado: Como administrar seu sistema Linux .
Conceder acesso a /home/<user> ?
Até onde sei, não há uma maneira sistemática de fazer isso sem dar a esse usuário privilégios elevados de outras maneiras que você está tentando limitar. Eu diria que se você não confia neste usuário em particular a responsabilidade de ter acesso desta forma, então eles provavelmente não são a pessoa certa para fazer este trabalho!
Grupos
Por exemplo. Digamos que eu tenha 2 alunos e 1 TA. Alunos (usuário1 & usuário2) TA (usuário3).
Assim, os grupos seriam os seguintes:
- class1
- vboxuser1
Então, quando eu entrei no sistema como qualquer um dos usuários acima (1-3), meus grupos seriam os seguintes:
$ groups
users vboxusers class1
Esses grupos também precisam ser definidos nos diretores de casa do aluno:
$ ls -l /home/user1 | head -3
total 37784
drwxrwxr-x 2 saml class1 4096 May 16 22:02 alsa
drwxrwxr-x 31 saml class1 4096 Mar 26 12:09 apps
Esta é apenas uma idéia, ela tem problemas com essa abordagem, mas, dadas as informações que você forneceu, é "uma maneira de fazer isso"!