что такое sudo в mac os
Что такое sudo в mac os
Для начала откроем терминал: Cmd+Space набираем в поиске Spotlight «terminal» или «терминал» видим в найденном и запускаем его.
* Помним программа «Терминал» не отображает пароль во время ввода. В случае ввода неправильного или пустого пароля команда не выполняется, и программа «Терминал» предлагает повторить попытку.
Разрешить использование программ, загруженных из: любого источника
Включаем поддержку TRIM для SSD накопителей сторонних производителей
Как включить HiDPI режим в MacOS 10.x.x
* для использования расширенных возможностей установите утилиту SwitchResX.
Отключаем задвоение программ в контекстном меню «Открыть с помощью»(при правом клике мышью)
* актуально скорее для старых Mac OS.
Создаём пользователя и удаляем старого
Это полезно, если продаёте свой Mac, все программы останутся и будут работать.
Чистая система с установленным софтом! Просто настраиваем всё заново.
Включаем AirDrop для старых компьютеров Mac
Ускоряем Dock
Многие пользователи используют опцию «Автоматически показывать или скрывать Dock», наводя мышь на ту часть экрана в которой Dock размещён. По умолчанию Dock появляется с задержкой в 0,7 секунды. Это медленно? Тогда давайте изменим это.
* 0.5 это и есть время задержки в пол-секунды, если поставить 0 то и задержки не будет вовсе.
Скриншот окна без тени
Скриншоты окон в macOS по умолчанию делаются с красивой тенью вокруг них. Размещение таких скриншотов в статьях с белым фоном выглядит привлекательно. Но иногда они могут быть лишними, например для обычной пересылки.
Лечение сертификата (цифровой подписи) приложений исключённых Apple
В ночь с 10 на 11 июля 2019 года компания Apple выпустила внеочередной патч безопасности для macOS, который был автоматически установлен на устройства всех пользователей вне зависимости от их желания.
В патче безопасности был удален сертификат TNT (и других таких как The Shark), из-за чего пользователи столкнулись с сообщением об ошибке при запуске некоторых приложений.
* Приложение должно находиться на компьютере Mac (в папке «Программы» или на Рабочем столе). Не перетаскивайте приложение из образа. Это бесполезно.
Отключаем SWAP в Mac OS X
А надо ли отключать SWAP. Это спорный вопрос, и я не знаю надо ли это Вам, но у меня 96 Гб оперативной памяти и я бы не хотел думать даже секунду, что вдруг мой SSD, при таком объёме физической памяти, ещё и будет пилиться каким-то SWAP файлом.
Не уверены? Тогда сделайте Бекап операционной системы, перед тем как подавать команды, которые Вы видите ниже.
* Обратите внимание, что в дирктории /private/var/vm/ находиться и файл сна sleepimage и как правило его размер равен размеру оперативной памяти, в моём случае это 96 Гб, не удивительно что те кто пользуются Сном на Mac изнашивают быстрее SSD диск.
Восстанавливаем права доступа под Mac OS X — EL Capitan
При переходе на El Capitan ряд пользователей столкнулся с проблемами прав доступа — неработающее sudo, некорректная timezone, etc…
Корнем зла является урезанный доступ к /private/etc.
Вот так «drwxr-xr-x» и должны выглядеть права на etc. Если они выглядят больше похожими на «drwx——», то вам к нам.
Как оказалось, эта опция больше недоступна через GUI.
Однако как подсказывает нам Google (например — osxdaily.com/2015/11/04/verify-repair-permissions-mac-os-x ), это всё ещё можно сделать через командную строку:
Таким образом, всё что нам нужно чтобы восстановить работоспособность sudo это… работающее sudo! Несколько иронично, не так ли?
Тем не менее — выход есть.
Для того, чтобы починить права необходимо:
1. залогиниться пользователем с правами администратора
2. получить доступ к пользователю root
3. изменить права доступа на папку /private/etc
1. залогиниться пользователем с правами администратора
С первым пунктом я вам ничем не помогу. Если ваша учетная запись уже имеет права администратора — используйте её. Если нет — найдите своего администратора.
2. получить доступ к пользователю root
Для того, чтобы получить доступ к root запустите приложение «Directory Utility». Я бы рекомендовал открывать его через Spotlight.
После запуска программы кликните на замок и введите пароль своего пользователя чтобы «Directory Utility» позволил вам внести изменения.
Зайдите в меню Edit. Если у вас есть пункт «Enable Root User» начните с него. Если же вместо этого пункта вы видите «Disable Root User», то сразу же выбирайте «Change Root Password. »
Введите пароль и повторите его для контроля. Приличные люди не используют для root тот же пароль, что и для своего обычного пользователя.
3. изменить права доступа на папку /private/etc
Запустите Terminal (это, опять таки, можно сделать через Spotlight).
Введите команду su.
При вводе этой команды система запросит у вас пароль. Надо вести пароль root пользователя. Именно тот, который вы установили на втором шаге, а не ваш обычный пароль.
Если вы ввели его верно, то у вас появится приглашение командной строки с решеткой на конце. Что-то вроде:
Enable sudo without a password on MacOS
I would like to be able to run sudo commands on MacOS Sierra 10.12 without having to type a password.
I’ve read the following:
And changed the relevant part of my /etc/sudoers file to:
5 Answers 5
Open a terminal, run sudo visudo
Now, you should now be able to run sudo without password.
Better not to edit /etc/sudoers directly. Instead, the /etc/sudoers file does include a line:
So better simply add an empty file under /private/etc/sudoers.d/mysudo and use visudo to fill it with a content like:
Remember to always run sudo visudo after creating the empty file under /private/etc/sudoers.d/ so that visudo also checks for syntax on that file, or else you might end up with a broken sudo configuration and the inability to run visudo to fix it.
You have been warned
Execute the terminal whoami command to find your username (also known as ldapname).
Chase that with executing the command below (be comfortable using VI/VIM before proceeding).
NOTE2/WARNING: You could have created a file named «nopw» in place of sudogo. However, hackers are slick and will look for the letters «PW» (abbreviation for password). Feel free to change «sudogo» to something different, logical, and safe. Be aware that an extension was not added to the end of the file; It is not required.
An example is posted below. Activate insert mode with i, copy both lines posted below into the blank file. Substitute INSERT_USERNAME for ldapname. Hit escape, save and quit the file with :wq from command mode.
Execute sudo visudo (-f and path omitted) one final time. The command will open the sudoers file and check the changes. Proceed to type :q! to exit /etc/sudoers without saving changes.
Как добавить пользователя в файл sudoers в Mac OS X
Элементарные нормы безопасности Mac OS X крайне рекомендуют работать под обычным пользователем без прав администратора. Однако продвинутым пользователям Mac OS X часто требуется запускать определенные команды с привилегиями суперпользователя. Самый простой и безопасный способ — запуск команд из терминала с префиксом sudo. Однако для того, чтобы пользователь имел возможность пользоваться этим префиксом — необходимо, чтобы запись об этом пользователе была добавлена в файл /etc/sudoers, в который собственно и прописаны параметры пользователей и групп для привилегированных задач.
Файл sudoers находится в /etc/sudoers, но в отличии от /etc/hosts и многих других конфигурационных файлов системы, вам не потребуется обычный текстовый редактор для редактирования. Вместо этого, рекомендуется использовать определенную команду под названием «visudo», которая позволяет проверить корректность синтаксиса перед сохранением документа.
Важно: Настройка файла sudoers не предназначена для большинства пользователей OS X. Только продвинутые пользователи, которые имеют веские основания для этого должны что-либо изменять в файле sudoers. Если вы не знаете, что вы делаете и почему вы делаете это, не редактируйте файл sudoers. Это может представлять угрозу безопасности!
Добавить пользователя в Sudoers в Mac OS X
Добавление пользователей в sudoers требует использования редактора Vi, который может быть довольно непривычным для некоторых пользователей (а Юниксоидам — это не должно составлять проблем). Для незнакомых с vi, мы наметили точные ключевые последовательности команд для редактирования, вставки, и сохранения файла в vi, поэтому тщательно следуйте инструкциям.
# User privilege specification
root ALL=(ALL) ALL
%admin ALL=(ALL) ALL
username ALL=(ALL) ALL
Ниже пример, как должен выглядеть фрагмент файла с добавленным новым пользователем «osxdaily»:
Чтобы быть уверенным в корректных изменениях в файле наберите команду:
Используйте grep чтобы найти имя пользователя быстро, если вы не хотите, чтобы просканировать весь файл:
cat /etc/sudoers | grep username
Теперь, «Имя пользователя» был добавлен в sudoers файл вы должны быть хорошо идти.
Устранение ошибки « /etc/sudoers busy, try again later «
Если вы пытаетесь изменить sudoers и получаете сообщение об ошибке «visudo: /etc/sudoers busy, try again later» — это, как правило, означает, что файл уже открыт, либо другим пользователем, или случайно, или вследствие неправильного закрытия visudo. Если вы находитесь на многопользовательской машине не забудьте проверить действия с другими пользователями, прежде чем делать что-нибудь еще, но в целом это не должно происходить на однопользовательском компьютере. Решение для однопользовательский систем довольно простое — достаточно удалить временный файл sudoers, который блокирует редактирование:
sudo rm /etc/sudoers.tmp
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Is there any graphical «sudo» for Mac OS X?
I’m designing a little software in Java. I don’t know the term/definition to what I’m doing, but I’m prompting commands from Java to the terminal. Something like this:
I’ve done this before in Linux, and I used gksudo for commands that required the root password.
Is there any gksudo in OS X? Any graphical popup asking for root password?
9 Answers 9
You can more ore less manage to write your own with an AppleScript shell script:
cocoasudo looks aesthetically more pleasing, but this is already deployed.
This also looks promising: cocoasudo
It uses the OSX native Authorization Services API:
For Mac OS X Cocoa-based apps, there is analagous ability to sudo provided via the Authorization Services API. Use of the API allows you to prompt the user for their username and password requesting the ability to escalate privileges.
For that case, I’ve written a small utility that I’ve dubbed cocoasudo. Use cocoasudo in much the same way you’d use sudo. However, instead of users being prompted for their password in a Terminal window, they’ll get a dialog prompt via the Authorization Services API.
I found the cocoasudo doesn’t work if you are running a shell script that calls other commands. You would have to use cocoasudo in all sub-commands also which would pop up a prompt for each call.
The osascript solution seems to work better, but I needed to tweak it to work with commands involving paths containing spaces.
make the follows, in this example I go create a folder /var/lock and set your permissions to 777:
on linux maybe you can make this with gksudo but I not test it, after I go testing and post here the results.
You can use this clone for it especially for OS X.
Following ZJR’s answer, I’ve made this into automator, so you can use it as a Service or whatever:
Or, maybe you just think his answer is outdated and still want an AppleScript, just write this single line in Script Editor:
Which you can then make into an app and use it as a Service or whatever.
One should use the native OS X authorization services instead of looking at sudo and/or a graphical interface to it.
There seems to be a lot of wrong information in these answers. To save other people some time, I post my own findings:
First of all, like the poster of the question, I also have the situation that I need to elevate permissions from within a Java application.
I have split this up into two scripts. The first script is executed from Java with some command line parameter. The second script performs all steps that need root privileges. The idea is of course to use cocoasudo in the first script to perform the second script with root privileges.
I have confirmed via extensive logging into separate files that the scripts indeed do what I intended. And they work fine when launched manually (with normal user privileges of course) from the command line.
When launched from the Java app, I do get the cocoasudo prompt, but nothing happens. Not even the first logging output from the second script appears.
When I change the first script to use osascript, again with confirmation that everything is correct as far as the script goes, I don’t even get a prompt when it runs from within Java.
This is all on OS X Mountain Lion. As if Apple build in some safe guards that prevent scripts being executed with root privileges from within Java.
Since cocoasudo itself actually runs, I am inclined to think the solution is to code something similar to cocoasudo, but performing all the rest of the required actions using Cocoa API calls. This can then be code-signed as well.