Netbeans устанавливает root как автора - PullRequest
0 голосов
/ 16 сентября 2018

Я использую Linux Mint 18.3 cinnamon 64 бит

Я только что загрузил Apache NetBeans IDE 9.0

Не нужно было запускать какой-либо скрипт для его установки, мне просто нужно было запуститьследующая команда для его запуска: sudo /opt/netbeans/bin/netbeans Затем введите мой пароль и NetBeans откроется.Затем я запустил программу запуска, потому что не хотел вводить команду и пароль каждый раз, когда открываю netbeans.Но пусковая установка не сработала.Я понимаю, что я не поставил «sudo» в команду, которую запускает программа запуска, поэтому я поставил ее.И не сработало.

Я думал, что это не сработало, потому что программа запуска выполняет sudo /opt/netbeans/bin/netbeans, но не вводит пароль.После некоторого исследования я добавляю star_man ALL=(ALL) NOPASSWD: /opt/netbeans/bin/netbeans в конце /etc/sudoers, и это наконец работает.Но когда я создаю новый проект, Netbeans устанавливает root как автора каждого файла, который он создает.

Например, когда я печатаю ls -l в каталоге моего проекта, он выводит следующее:

-rw-r--r-- 1 root root 3527 sep 15 20:01 build.xml
-rw-r--r-- 1 root root   82 sep 15 20:01 manifest.mf
drwxr-xr-x 3 root root 4096 sep 15 20:01 nbproject
drwxr-xr-x 3 root root 4096 sep 15 20:01 src

Root - это группа и владелец каждого файла, являющегося каталогом.

Это приводит к тому, что когда Netbeans генерирует файлы документации, вместо моего имени пользователя ставится «root».

Обновление: Я могу запустить neatbeans только как root (sudo ./netbeans).

, когда я запускаю neatbean без sudo из терминала, похоже, что он запускается: снимок экрана

, но затем закрывается.

Это вывод:

>Log Session: Sunday, September 16, 2018 at 12:58:20 PM Eastern Daylight Time
>System Info: 
  Product Version         = Apache NetBeans IDE 9.0 (Build incubator-netbeans-release-334-on-20180708)
  Operating System        = Linux version 4.15.0-34-generic running on amd64
  Java; VM; Vendor        = 10.0.1; Java HotSpot(TM) 64-Bit Server VM 10.0.1+10; Oracle Corporation
  Runtime                 = Java(TM) SE Runtime Environment 10.0.1+10
  Java Home               = /opt/java/jdk-10.0.1
  System Locale; Encoding = es_DO (nb); UTF-8
  Home Directory          = /home/star_man
  Current Directory       = /opt/netbeans
  User Directory          = /home/star_man/.netbeans/9.0
  Cache Directory         = /home/star_man/.cache/netbeans/9.0
  Installation            = /opt/netbeans/nb
                            /opt/netbeans/ide
                            /opt/netbeans/extide
                            /opt/netbeans/java
                            /opt/netbeans/apisupport
                            /opt/netbeans/websvccommon
                            /opt/netbeans/profiler
                            /opt/netbeans/harness
                            /opt/netbeans/javafx
                            /opt/netbeans/platform
  Boot & Ext. Classpath   = 
  Application Classpath   = /opt/netbeans/platform/lib/boot.jar:/opt/netbeans/platform/lib/org-openide-modules.jar:/opt/netbeans/platform/lib/org-openide-util.jar:/opt/netbeans/platform/lib/org-openide-util-lookup.jar:/opt/netbeans/platform/lib/org-openide-util-ui.jar
  Startup Classpath       = /opt/netbeans/platform/core/core-base.jar:/opt/netbeans/platform/core/org-netbeans-libs-asm.jar:/opt/netbeans/platform/core/asm-all-5.0.1.jar:/opt/netbeans/platform/core/org-openide-filesystems.jar:/opt/netbeans/platform/core/org-openide-filesystems-compat8.jar:/opt/netbeans/platform/core/core.jar:/opt/netbeans/nb/core/org-netbeans-upgrader.jar:/opt/netbeans/nb/core/locale/core_nb.jar
-------------------------------------------------------------------------------
INFO [org.netbeans.modules.netbinox]: Install area set to file:/opt/netbeans/
!SESSION 2018-09-16 12:58:21.698 -----------------------------------------------
eclipse.buildId=unknown
java.version=10.0.1
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=es_DO

!ENTRY org.eclipse.osgi 4 0 2018-09-16 12:58:21.706
!MESSAGE Error reading configuration: Permission denied
!STACK 0
java.io.IOException: Permission denied
    at java.base/java.io.UnixFileSystem.createFileExclusively(Native Method)
    at java.base/java.io.File.createTempFile(File.java:2090)
    at org.eclipse.osgi.storagemanager.StorageManager.initializeInstanceFile(StorageManager.java:188)
    at org.eclipse.osgi.storagemanager.StorageManager.open(StorageManager.java:708)
    at org.eclipse.osgi.internal.baseadaptor.BaseStorage.initFileManager(BaseStorage.java:226)
    at org.eclipse.osgi.internal.baseadaptor.BaseStorage.initialize(BaseStorage.java:160)
    at org.eclipse.osgi.baseadaptor.BaseAdaptor.initializeStorage(BaseAdaptor.java:123)
    at org.eclipse.osgi.framework.internal.core.Framework.<init>(Framework.java:192)
    at org.eclipse.osgi.framework.internal.core.EquinoxLauncher.internalInit(EquinoxLauncher.java:67)
    at org.eclipse.osgi.framework.internal.core.EquinoxLauncher.init(EquinoxLauncher.java:37)
    at org.eclipse.osgi.launch.Equinox.init(Equinox.java:178)
    at org.netbeans.modules.netbinox.Netbinox.init(Netbinox.java:61)
    at org.netbeans.core.netigso.Netigso.prepare(Netigso.java:145)
    at org.netbeans.NetigsoHandle.turnOn(NetigsoHandle.java:115)
    at org.netbeans.ModuleManager.enable(ModuleManager.java:1331)
    at org.netbeans.ModuleManager.enable(ModuleManager.java:1148)
    at org.netbeans.core.startup.ModuleList.installNew(ModuleList.java:315)
    at org.netbeans.core.startup.ModuleList.trigger(ModuleList.java:251)
    at org.netbeans.core.startup.ModuleSystem.restore(ModuleSystem.java:276)
    at org.netbeans.core.startup.Main.getModuleSystem(Main.java:156)
    at org.netbeans.core.startup.Main.getModuleSystem(Main.java:125)
    at org.netbeans.core.startup.Main.start(Main.java:282)
    at org.netbeans.core.startup.TopThreadGroup.run(TopThreadGroup.java:98)
    at java.base/java.lang.Thread.run(Thread.java:844)
java.lang.RuntimeException: Permission denied
    at org.eclipse.osgi.framework.internal.core.Framework.<init>(Framework.java:194)
    at org.eclipse.osgi.framework.internal.core.EquinoxLauncher.internalInit(EquinoxLauncher.java:67)
    at org.eclipse.osgi.framework.internal.core.EquinoxLauncher.init(EquinoxLauncher.java:37)
    at org.eclipse.osgi.launch.Equinox.init(Equinox.java:178)
    at org.netbeans.modules.netbinox.Netbinox.init(Netbinox.java:61)
    at org.netbeans.core.netigso.Netigso.prepare(Netigso.java:145)
    at org.netbeans.NetigsoHandle.turnOn(NetigsoHandle.java:115)
    at org.netbeans.ModuleManager.enable(ModuleManager.java:1331)
    at org.netbeans.ModuleManager.enable(ModuleManager.java:1148)
    at org.netbeans.core.startup.ModuleList.installNew(ModuleList.java:315)
    at org.netbeans.core.startup.ModuleList.trigger(ModuleList.java:251)
    at org.netbeans.core.startup.ModuleSystem.restore(ModuleSystem.java:276)
    at org.netbeans.core.startup.Main.getModuleSystem(Main.java:156)
    at org.netbeans.core.startup.Main.getModuleSystem(Main.java:125)
    at org.netbeans.core.startup.Main.start(Main.java:282)
    at org.netbeans.core.startup.TopThreadGroup.run(TopThreadGroup.java:98)
    at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.io.IOException: Permission denied
    at java.base/java.io.UnixFileSystem.createFileExclusively(Native Method)
    at java.base/java.io.File.createTempFile(File.java:2090)
    at org.eclipse.osgi.storagemanager.StorageManager.initializeInstanceFile(StorageManager.java:188)
    at org.eclipse.osgi.storagemanager.StorageManager.open(StorageManager.java:708)
    at org.eclipse.osgi.internal.baseadaptor.BaseStorage.initFileManager(BaseStorage.java:226)
    at org.eclipse.osgi.internal.baseadaptor.BaseStorage.initialize(BaseStorage.java:160)
    at org.eclipse.osgi.baseadaptor.BaseAdaptor.initializeStorage(BaseAdaptor.java:123)
    at org.eclipse.osgi.framework.internal.core.Framework.<init>(Framework.java:192)
    ... 16 more

Я обнаружил, что у каждого файла и каталога в ~/.netbeans есть root как владелец и группа.Я подумал, что это может быть проблемой, поэтому я изменил владельца и группу с ~/.netbeans $ sudo chown -R myusername: .netbeans/.И все же я могу запускать только netbeans от имени root.

1 Ответ

0 голосов
/ 16 сентября 2018

Это основная проблема с разрешениями Unix.

По причинам, которые меня избегают, вы использовали sudo для запуска netbeans IDE.
- Ты не должен был этого делать.
- Вы не должны иметь необходимых , чтобы сделать это!

Когда вы используете sudo для запуска чего-либо, вы обычно работаете как пользователь root. (Это то, что делает sudo)

Итак, что-то (в данном случае приложение netbeans, запущенное с использованием sudo) создаст файлы и каталоги, принадлежащие «корневому» пользователю. Поэтому, когда вы пытаетесь обновить их как обычный пользователь, операционная система говорит: «Нет, у вас нет этих файлов / каталогов, поэтому вы не можете их изменять».

Решение: используйте команду chown, чтобы изменить владельца файлов и каталогов, как требуется.

Как? Прочитайте man chown или найдите учебное пособие о том, как изменить владельца файла.

  • Подсказка: вам нужно будет использовать sudo при чау-чау ...
  • Подсказка 2: будьте очень, очень осторожны, когда используете sudo, потому что sudo может уничтожить вашу систему, если вы допустите ошибку.
...