LINUX.ORG.RU

S2ram. Например через sudo


0

1

Привет всемогущий ЛОР. Я тут новичок и вообще новичок в линуксе.

Хочу делать sudo echo mem > /sys/power/state, но терминал отвечает что у меня нет прав. Пользователь присутствует в группе wheel. Как можно этьо обойти чтоб в будущем повесить выполнение этой команды на хоткей?

Ответ на: комментарий от GotF

А если бы я не написал что я новичек ты бы ответил нормально?

Reisub ()
Ответ на: комментарий от Reisub

Никогда так не делай. На худой конец, используй группы.

GotF ★★★★★ ()

Не работает оно потому, что с рутовыми правами исполняется лишь echo mem. Вообще, раз уж ты хочешь дать пользователю право записи в файл, то правильнее сделать именно это с помощью команды chmod (sudo в дальнейшем, естественно, не понадобится)

Впрочем, вот тебе quick&dirty fix: sudo sh -c 'echo mem > /sys/power/state'

Alan_Steel ★★ ()
Ответ на: комментарий от Reisub

Да и при чем тут sudoers?

Невнимательно прочитал. Но выше как раз ответили. Нужно квотить всю конструкцию целиком, иначе всё дальше `|', `>' и прочих специальных символов будет выполняться уже не sudo.

GotF ★★★★★ ()

Пользователь присутствует в группе wheel.

su -c 'echo mem > /sys/power/state'
GotF ★★★★★ ()
Ответ на: комментарий от Alan_Steel

Не канает ни то ни другое. Отказано в доступе. Наверно не до конца допилил sudoers. Но пароль при sudo у меня не просит

Reisub ()
Ответ на: комментарий от Alan_Steel
## sudoers file.
##
## This file MUST be edited with the 'visudo' command as root.
## Failure to use 'visudo' may result in syntax or file permission errors
## that prevent sudo from running.
##
## See the sudoers man page for the details on how to write a sudoers file.
##

##
## Host alias specification
##
## Groups of machines. These may include host names (optionally with wildcards),
## IP addresses, network numbers or netgroups.
# Host_Alias	WEBSERVERS = www1, www2, www3

##
## User alias specification
##
## Groups of users.  These may consist of user names, uids, Unix groups,
## or netgroups.
# User_Alias	ADMINS = millert, dowdy, mikef

##
## Cmnd alias specification
##
## Groups of commands.  Often used to group related commands together.
# Cmnd_Alias	PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
# 			    /usr/bin/pkill, /usr/bin/top

##
## Defaults specification
##
## You may wish to keep some of the following environment variables
## when running commands via sudo.
##
## Locale settings
# Defaults env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET"
##
## Run X applications through sudo; HOME is used to find the
## .Xauthority file.  Note that other programs use HOME to find   
## configuration files and this may lead to privilege escalation!
# Defaults env_keep += "HOME"
##
## X11 resource path settings
# Defaults env_keep += "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"
##
## Desktop path settings
# Defaults env_keep += "QTDIR KDEDIR"
##
## Allow sudo-run commands to inherit the callers' ConsoleKit session
# Defaults env_keep += "XDG_SESSION_COOKIE"
##
## Uncomment to enable special input methods.  Care should be taken as
## this may allow users to subvert the command being run via sudo.
# Defaults env_keep += "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
##
## Uncomment to enable logging of a command's output, except for
## sudoreplay and reboot.  Use sudoreplay to play back logged sessions.
# Defaults log_output
# Defaults!/usr/bin/sudoreplay !log_output
# Defaults!/usr/local/bin/sudoreplay !log_output
# Defaults!/sbin/reboot !log_output

##
## Runas alias specification
##

##
## User privilege specification
##
root ALL=(ALL) ALL
reisub ALL=(ALL) ALL

## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL

## Same thing without a password
%wheel ALL=(ALL) NOPASSWD: ALL

## Uncomment to allow members of group sudo to execute any command
# %sudo	ALL=(ALL) ALL

## Uncomment to allow any user to run sudo if they know the password
## of the user they are running the command as (root by default).
# Defaults targetpw  # Ask for the password of the target user
# ALL ALL=(ALL) ALL  # WARNING: only use this together with 'Defaults targetpw'

## Read drop-in files from /etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /etc/sudoers.d
Reisub ()
Ответ на: комментарий от anon_666

Это работает. Как я сам то не догадался передать в конвейер с судо.

Получается tee затирает файл, а потом прописывает туда mem?

Reisub ()

sudo sh -c 'echo mem > /sys/power/state'.

Лучше поставить pm-utils и запускать sudo pm-suspend.

AITap ★★★★★ ()
Ответ на: комментарий от Reisub

> chmod 666 /sys/power/state ?

Нет, читай man chmod внимательнее и обрати внимание на биты с мнемониками »s«

anonymous ()
Ответ на: комментарий от AITap

Проще поставить acpitool и повесить на бинарник setuid или написать скрипт, поставить скрипту setuid (не забыв поменять владельца на нужного) и радоваться празднику ;)

anonymous ()
Ответ на: комментарий от anonymous

>поставить скрипту setuid

setuid не работает для скриптов.

anon_666 ()
Ответ на: комментарий от anonymous

Нет, самое простое забиндить на хоткей XF86Standby команду которую дал AlTap.

Reisub ()
Ответ на: комментарий от Reisub

> Нет, самое простое забиндить на хоткей XF86Standby команду которую дал AlTap.

Да, это проще, чем читать что-то самому, думать и решать простые вещи самому.

anonymous ()
Ответ на: комментарий от anonymous

Анончик, ты изначально пукал в этой теме неправильными путями решения проблемы.Я кстати именно _люблю_ читать маны. Если бы я их не читал я задавал бы еще больше глупых вопросов.

Reisub ()
Ответ на: комментарий от anonymous

> поставить скрипту setuid
Для bash-скриптов это не помогает.

AITap ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.