diff --git a/README.md b/README.md index 21fc8e36a..07e6f6c91 100644 --- a/README.md +++ b/README.md @@ -15,13 +15,29 @@ JumpServer 采纳分布式架构,支持多机房跨区域部署,支持横向 ## 特色优势 -- 开源: 零门槛,线上快速获取和安装; -- 分布式: 轻松支持大规模并发访问; +- 开源: 零门槛,线上快速获取和安装, 修复版本视情况而定; +, 修复版本视情况而定- 分布式: 轻松支持大规模并发访问; - 无插件: 仅需浏览器,极致的 Web Terminal 使用体验; - 多云支持: 一套系统,同时管理不同云上面的资产; - 云端存储: 审计录像云端存储,永不丢失; - 多租户: 一套系统,多个子公司和部门同时使用。 +## 版本说明 + +自 v2.0.0 发布后, JumpServer 版本号命名将变更为:v大版本.功能版本.Bug修复版本。比如: + +``` +v2.0.1 是 v2.0.0 之后的Bug修复版本; +v2.1.0 是 v2.0.0 之后的功能版本。 +``` + +像其它优秀开源项目一样,JumpServer 每个月会发布一个功能版本,并同时维护 3 个功能版本。比如: + +``` +在 v2.4 发布前,我们会同时维护 v2.1、v2.2、v2.3; +在 v2.4 发布后,我们会同时维护 v2.2、v2.3、v2.4;v2.1 会停止维护。 +``` + ## 功能列表
{% trans 'Name' %}: | -{{ database_app.name }} | -
{% trans 'Type' %}: | -{{ database_app.get_type_display }} | -
{% trans 'Host' %}: | -{{ database_app.host }} | -
{% trans 'Port' %}: | -{{ database_app.port }} | -
{% trans 'Database' %}: | -{{ database_app.database }} | -
{% trans 'Date created' %}: | -{{ database_app.date_created }} | -
{% trans 'Created by' %}: | -{{ database_app.created_by }} | -
{% trans 'Comment' %}: | -{{ database_app.comment }} | -
- - | -{% trans 'Name' %} | -{% trans 'Type' %} | -{% trans 'Host' %} | -{% trans 'Port' %} | -{% trans 'Database' %} | -{% trans 'Comment' %} | -{% trans 'Action' %} | -
---|
{% trans 'Name' %}: | -{{ remote_app.name }} | -
{% trans 'Asset' %}: | -{{ remote_app.asset.hostname }} | -
{% trans 'App type' %}: | -{{ remote_app.get_type_display }} | -
{% trans 'App path' %}: | -{{ remote_app.path }} | -
{% trans 'Date created' %}: | -{{ remote_app.date_created }} | -
{% trans 'Created by' %}: | -{{ remote_app.created_by }} | -
{% trans 'Comment' %}: | -{{ remote_app.comment }} | -
- - | -{% trans 'Name' %} | -{% trans 'App type' %} | -{% trans 'Asset' %} | -{% trans 'Comment' %} | -{% trans 'Action' %} | -
---|
- - | -{% trans 'Name' %} | -{% trans 'Type' %} | -{% trans 'Host' %} | -{% trans 'Database' %} | -{% trans 'Comment' %} | -{% trans 'Action' %} | -
---|
- - | -{% trans 'Name' %} | -{% trans 'App type' %} | -{% trans 'Asset' %} | -{% trans 'Comment' %} | -{% trans 'Action' %} | -
---|
{% trans "Hint: only change the field you want to update." %}
- -{% endblock %} -{% block modal_confirm_id %}btn_asset_group_bulk_update{% endblock %} diff --git a/apps/assets/templates/assets/_asset_list_modal.html b/apps/assets/templates/assets/_asset_list_modal.html deleted file mode 100644 index dea2c3e1e..000000000 --- a/apps/assets/templates/assets/_asset_list_modal.html +++ /dev/null @@ -1,224 +0,0 @@ -{% extends '_modal.html' %} -{% load i18n %} -{% load static %} - -{% block modal_class %}modal-lg{% endblock %} -{% block modal_id %}asset_list_modal{% endblock %} -{% block modal_title%}{% trans "Asset list" %}{% endblock %} -{% block modal_body %} - - - - - -- | {% trans 'Hostname' %} | -{% trans 'IP' %} | -
---|
- - | -{% trans 'Hostname' %} | -{% trans 'IP' %} | -{% trans 'Username' %} | -{% trans 'Version' %} | -{#{% trans 'Connectivity'%} | #} -{% trans 'Datetime' %} | -{% trans 'Action' %} | -
---|
{% trans 'Name' %}: | -{{ admin_user.name }} | -
{% trans 'Username' %}: | -{{ admin_user.username }} | -
{% trans 'Date created' %}: | -{{ admin_user.date_created }} | -
{% trans 'Created by' %}: | -{{ admin_user.created_by }} | -
{% trans 'Comment' %}: | -{{ admin_user.comment }} | -
- - | -{% trans 'Name' %} | -{% trans 'Username' %} | -{% trans 'Asset' %} | -{% trans 'Comment' %} | -{% trans 'Action' %} | -
---|
{% trans 'Hostname' %}: | -{{ asset.hostname }} | -
{% trans 'IP' %}: | -{{ asset.ip }} | -
{% trans 'Public IP' %}: | -{{ asset.public_ip|default:"" }} | -
{% trans 'Protocol' %} | -{{ asset.protocols }} | -
{% trans 'Admin user' %}: | -{{ asset.admin_user }} | -
{% trans 'Domain' %}: | -{{ asset.domain|default:"" }} | -
{% trans 'Vendor' %}: | -{{ asset.vendor|default:"" }} | -
{% trans 'Model' %}: | -{{ asset.model|default:"" }} | -
{% trans 'CPU' %}: | -{{ asset.cpu_info }} | -
{% trans 'Memory' %}: | -{{ asset.memory|default:"" }} | -
{% trans 'Disk' %}: | -{{ asset.disk_total|default:"" }} | -
{% trans 'Platform' %}: | -{{ asset.platform|default:"" }} | -
{% trans 'OS' %}: | -{{ asset.os|default:"" }} {{ asset.os_version|default:"" }} {{ asset.os_arch|default:"" }} | -
{% trans 'Is active' %}: | -{{ asset.is_active|yesno:"Yes,No" }} | -
{% trans 'Serial number' %}: | -{{ asset.sn|default:"" }} | -
{% trans 'Asset number' %}: | -{{ asset.number|default:"" }} | -
{% trans 'Created by' %}: | -{{ asset.created_by }} | -
{% trans 'Date joined' %}: | -{{ asset.date_joined|date:"Y-m-j H:i:s" }} | -
{% trans 'Comment' %}: | -{{ asset.comment }} | -
{% trans 'Active' %}: | -
-
-
-
-
-
-
-
-
- |
-
{% trans 'Refresh hardware' %}: | -- - - - | -
{% trans 'Test connective' %}: | -- - - - | -
{{ node.full_value }} | -- - | -
- | {% trans 'Hostname' %} | -{% trans 'IP' %} | -{% trans 'Hardware' %} | -{% trans 'Reachable' %} | -{% trans 'Action' %} | -
---|
{% trans 'Name' %}: | -{{ object.name }} | -
{% trans 'Comment' %}: | -{{ object.comment }} | -
{% trans 'Date created' %}: | -{{ object.date_created }} | -
{% trans 'Date updated' %}: | -{{ object.date_updated }} | -
{% trans 'Created by' %}: | -{{ object.created_by }} | -
{{ system_user }} | -- - | -
- - | -{% trans 'Name' %} | -{% trans 'Rules' %} | -{% trans 'System users' %} | -{% trans 'Comment' %} | -{% trans 'Action' %} | -
---|
- - | -{% trans 'Type' %} | -{% trans 'Content' %} | -{% trans 'Priority' %} | -{% trans 'Strategy' %} | -{% trans 'Comment' %} | -{% trans 'Action' %} | -
---|
{% trans 'Name' %}: | -{{ object.name }} | -
{% trans 'Asset' %}: | -{{ object.assets.count }} | -
{% trans 'Gateway' %}: | -{{ object.gateway_set.count }} | -
{% trans 'Date created' %}: | -{{ object.date_created }} | -
{% trans 'Comment' %}: | -{{ object.comment }} | -
- - | -{% trans 'Name' %} | -{% trans 'IP' %} | -{% trans 'Port' %} | -{% trans 'Protocol' %} | -{% trans 'Username' %} | -{% trans 'Comment' %} | -{% trans 'Action' %} | -
---|
- - | -{% trans 'Name' %} | -{% trans 'Asset' %} | -{% trans 'Gateway' %} | -{% trans 'Comment' %} | -{% trans 'Action' %} | -
---|
- - | -{% trans 'Name' %} | -{% trans 'Value' %} | -{% trans 'Asset' %} | -{% trans 'Action' %} | -
---|
{% trans 'Name' %}: | -{{ object.name }} | -
{% trans 'Base platform' %}: | -{{ object.base }} | -
{% trans 'Charset' %}: | -{{ object.charset }} | -
{% trans 'Meta' %}: | -{{ object.meta }} | -
{% trans 'Comment' %}: | -{{ object.comment }} | -
- - | -{% trans 'Name' %} | -{% trans 'Base platform' %} | -{% trans 'Comment' %} | -{% trans 'Action' %} | -
---|
{% trans 'Test assets connective' %}: | -- - - - | -
{% trans 'Push system user now' %}: | -- - - - | -
{% trans 'Name' %}: | -{{ system_user.name }} | -|
{% trans 'Username' %}: | - {% if system_user.username_same_with_user %} -{% trans 'Username same with user' %} | - {% else %} -{{ system_user.username }} | - {% endif %} -
{% trans 'Login mode' %}: | -{{ system_user.get_login_mode_display }} | -|
{% trans 'Protocol' %}: | -{{ system_user.protocol }} | -|
{% trans 'Sudo' %}: | -{{ system_user.sudo }} | -|
{% trans 'Shell' %}: | -{{ system_user.shell }} | -|
{% trans 'Home' %}: | -{{ system_user.home }} | -|
{% trans 'Uid' %}: | -{{ system_user.uid }} | -|
{% trans 'Date created' %}: | -{{ system_user.date_created }} | -|
{% trans 'Created by' %}: | -{{ system_user.created_by }} | -|
{% trans 'Comment' %}: | -{{ system_user.comment }} | -
{% trans 'Auto push' %}: | -
-
-
-
-
-
-
-
-
- |
-
{{ cf }} | -- - | -
- - | -{% trans 'Name' %} | -{% trans 'Username' %} | -{% trans 'Protocol' %} | -{% trans 'Login mode' %} | -{% trans 'Asset' %} | -{% trans 'Comment' %} | -{% trans 'Action' %} | -
---|
{% trans 'ID' %} | -{% trans 'Username' %} | -{% trans 'Type' %} | -{% trans 'UA' %} | -{% trans 'IP' %} | -{% trans 'City' %} | -{% trans 'MFA' %} | -{% trans 'Reason' %} | -{% trans 'Status' %} | -{% trans 'Date' %} | -
---|---|---|---|---|---|---|---|---|---|
{{ forloop.counter }} | -{{ login_log.username }} | -{{ login_log.get_type_display }} | -- {{ login_log.user_agent | truncatechars:20 }} - | -{{ login_log.ip }} | -{{ login_log.city }} | -{{ login_log.get_mfa_display }} | -{{ login_log.reason_display }} | -{{ login_log.get_status_display }} | -{{ login_log.datetime }} | -
{% trans 'ID' %}: | -{{ object.id }} | -
{% trans 'Hosts' %}: | -{{ object.hosts | length }} | -
{% trans 'Pattern' %}: | -{{ object.pattern }} | -
{% trans 'Options' %} | -
-
- {% for k, v in object.options.items %}
- {{ k }} = {{ v }} - {% endfor %} - - |
-
{% trans 'Run as' %} | -Admin | -
{% trans 'Run as' %}: | -{{ object.get_latest_execution.date_start }} | -
{% trans 'Become' %} | -{{ object.become_display }} | -
{% trans 'Created by' %} | -{{ object.created_by }} | -
{% trans 'Date created' %}: | -{{ object.date_created }} | -
{% trans 'Run times' %}: | -{{ object.execution.all | length }} | -
{% trans 'Last run' %}: | -{{ object.latest_execution.short_id }} | -
{% trans 'Time delta' %}: | -{{ object.latest_execution.timedelta|floatformat}} s | -
{% trans 'Is finished' %}: | -{{ object.latest_execution.is_finished|yesno:"Yes,No,Unkown" }} | -
{% trans 'Is success ' %}: | -{{ object.latest_execution.is_success|yesno:"Yes,No,Unkown" }} | -
{% trans 'Tasks' %}: | -
-
- {% for task in object.tasks %}
- {{ forloop.counter }}. {{ task.name }} ::: {{ task.action.module }} - {% endfor %} - - |
-
{{ host }}: | -- {% for name, result in task.items %} - {{ name }} => {{ result.msg }} - {% endfor %} - | -
{% trans 'No hosts' %} | -
{{ host }} | -
{% trans 'No hosts' %} | -
- - | -{% trans 'Date start' %} | -{% trans 'F/S/T' %} | -{% trans 'Ratio' %} | -{% trans 'Is finished' %} | -{% trans 'Is success' %} | -{% trans 'Time' %} | -{% trans 'Version' %} | -{% trans 'Action' %} | -
---|
{% trans 'ID' %}: | -{{ object.id }} | -
{% trans 'Task name' %}: | -{{ object.task.name }} | -
{% trans 'Version' %}: | -{{ object.adhoc.short_id }} | -
{% trans 'Date start' %}: | -{{ object.date_start }} | -
{% trans 'Time delta' %}: | -{{ object.timedelta|floatformat}} s | -
{% trans 'Is finished' %}: | -{{ object.is_finished|yesno:"Yes,No,Unkown" }} | -
{% trans 'Is success ' %}: | -{{ object.is_success|yesno:"Yes,No,Unkown" }} | -
{{ host }}: | -- {% for name, result in task.items %} - {{ name }} => {{ result.msg }} - {% endfor %} - | -
{% trans 'No assets' %} | -
{{ host }} | -
{% trans 'No assets' %} | -
- | {% trans 'Hosts' %} | -{% trans 'User' %} | -{% trans 'Command' %} | -{% trans 'Run as' %} | -{% trans 'Output' %} | -{% trans 'Finished' %} | -{% trans 'Success' %} | -{% trans 'Date start' %} | - - - {% for object in object_list %} -
---|---|---|---|---|---|---|---|---|
{{ forloop.counter }} | -- | {{ object.user.name }} | -{{ object.command| truncatechars:16 }} | -{{ object.run_as.username }} | -查看 | -{{ object.is_finished | state_show | safe }} | -{{ object.is_success | state_show | safe }} | -{{ object.date_start }} | -
{% trans 'ID' %}: | -{{ object.id }} | -
{% trans 'Name' %}: | -{{ object.name }} | -
{% trans 'Date created' %}: | -{{ object.date_created }} | -
{% trans 'Total versions' %} | -{{ object.adhoc.all |length }} | -
{% trans 'Latest version' %} | -{{ object.latest_adhoc.short_id }} | -
{% trans 'Last run' %}: | -{{ object.latest_execution.date_start }} | -
{% trans 'Time delta' %}: | -{{ object.latest_execution.timedelta|floatformat}} s | -
{% trans 'Is finished' %}: | -- {% if object.latest_execution.is_finished %} - {% trans 'Yes' %} - {% else %} - {% trans 'No' %} - {% endif %} - | -
{% trans 'Is success ' %}: | -- {% if object.latest_execution.is_success %} - {% trans 'Yes' %} - {% else %} - {% trans 'No' %} - {% endif %} - | -
{% trans 'Contents' %}: | -
-
- {% for task in object.latest_adhoc.tasks %}
- {{ forloop.counter }}. {{ task.name }} ::: {{ task.action.module }} - {% endfor %} - - |
-
{{ host }}: | -- {% for name, result in task.items %} - {{ name }} => {{ result.msg }} - {% endfor %} - | -
{% trans 'No hosts' %} | -
{{ host }} | -
{% trans 'No hosts' %} | -
- - | -{% trans 'Date start' %} | -{% trans 'F/S/T' %} | -{% trans 'Ratio' %} | -{% trans 'Is finished' %} | -{% trans 'Is success' %} | -{% trans 'Time' %} | -{% trans 'Version' %} | -{% trans 'Action' %} | -
---|
- - | -{% trans 'Name' %} | -{% trans 'Run times' %} | -{% trans 'Hosts' %} | -{% trans 'Success' %} | -{% trans 'Date' %} | -{% trans 'Time' %} | -{% trans 'Action' %} | -
---|
{{ node.full_value }} | -- - | -
{{ system_user|truncatechars:21}} | -- - | -
{% trans 'Name' %}: | -{{ object.name }} | -
{% trans 'User count' %}: | -{{ object.users.count }} | -
{% trans 'User group count' %}: | -{{ object.user_groups.count }} | -
{% trans 'Asset count' %}: | -{{ object.assets.count }} | -
{% trans 'Node count' %}: | -{{ object.nodes.count }} | -
{% trans 'System user count' %}: | -{{ object.system_users.count }} | -
{% trans 'Date start' %}: | -{{ object.date_start }} | -
{% trans 'Date expired' %}: | -{{ object.date_expired }} | -
{% trans 'Date created' %}: | -{{ object.date_created }} | -
{% trans 'Created by' %}: | -{{ object.created_by }} | -
{% trans 'Comment' %}: | -{{ object.comment }} | -
{% trans 'Active' %} : | -
-
-
-
-
-
-
- |
-
- | {% trans 'Name' %} | -{% trans 'User' %} | -{% trans 'User group' %} | -{% trans 'Asset' %} | -{% trans 'Node'%} | -{% trans 'System user' %} | -{% trans 'Validity' %} | -{% trans 'Action' %} | -
---|
{{ user_group }} | -- - | -
{{ system_user|truncatechars:21}} | -- - | -
{% trans 'Name' %}: | -{{ object.name }} | -
{% trans 'User count' %}: | -{{ object.users.count }} | -
{% trans 'User group count' %}: | -{{ object.user_groups.count }} | -
{% trans 'DatabaseApp count' %}: | -{{ object.database_apps.count }} | -
{% trans 'System user count' %}: | -{{ object.system_users.count }} | -
{% trans 'Date start' %}: | -{{ object.date_start }} | -
{% trans 'Date expired' %}: | -{{ object.date_expired }} | -
{% trans 'Date created' %}: | -{{ object.date_created }} | -
{% trans 'Created by' %}: | -{{ object.created_by }} | -
{% trans 'Comment' %}: | -{{ object.comment }} | -
{% trans 'Active' %} : | -
-
-
-
-
-
-
- |
-
- - | -{% trans 'Name' %} | -{% trans 'User' %} | -{% trans 'User group' %} | -{% trans 'DatabaseApp' %} | -{% trans 'System user' %} | -{% trans 'Validity' %} | -{% trans 'Action' %} | -
---|
{{ user_group }} | -- - | -
{% trans 'Name' %}: | -{{ object.name }} | -
{% trans 'User count' %}: | -{{ object.users.count }} | -
{% trans 'User group count' %}: | -{{ object.user_groups.count }} | -
{% trans 'RemoteApp count' %}: | -{{ object.remote_apps.count }} | -
{% trans 'Date start' %}: | -{{ object.date_start }} | -
{% trans 'Date expired' %}: | -{{ object.date_expired }} | -
{% trans 'Date created' %}: | -{{ object.date_created }} | -
{% trans 'Created by' %}: | -{{ object.created_by }} | -
{% trans 'Comment' %}: | -{{ object.comment }} | -
{% trans 'Active' %} : | -
-
-
-
-
-
-
- |
-
{{ system_user }} | -- - | -
- - | -{% trans 'Name' %} | -{% trans 'User' %} | -{% trans 'User group' %} | -{% trans 'RemoteApp' %} | -{% trans 'System user' %} | -{% trans 'Validity' %} | -{% trans 'Action' %} | -
---|
{% trans 'Name' %} | -{% trans 'Type' %} | -- |
---|---|---|
{{ remote_app.name }} | -{{ remote_app.get_type_display }} | -- - | -
{{ user_group }} | -- - | -
- | {% trans 'Username' %} | -{% trans 'Name' %} | -{% trans 'Email' %} | -{% trans 'Existing' %} | -
---|
- | {% trans 'Command' %} | -{% trans 'Risk level' %} | -{% trans 'User' %} | -{% trans 'Asset' %} | -{% trans 'System user'%} | -{% trans 'Session' %} | -{% trans 'Datetime' %} | -
---|
total: {{ total_count }}
-date: {{ now | ts_to_date }}
-- [{{ command.user}} {{ command.system_user }}@{{ command.asset }} {{ command.timestamp | ts_to_date }}] - {{ forloop.counter }} -
- -$ {{ command.input }}
- -{{ command.output }}-
ID | -{% trans 'Command' %} | -- | {% trans 'Datetime' %} | -|
---|---|---|---|---|
{{ forloop.counter }} | -{{ command.input | truncatechars:40 }} | --$ {{ command.input }} - -{{ command.output }} - |
- {{ command.timestamp|ts_to_date}} | -|
{% trans "There is no command about this session" %} | -||||
- |
-
{% trans 'User' %}: | -{{ object.user }} | -
{% trans 'Asset' %}: | -{{ object.asset }} | -
{% trans 'System user' %}: | -{{ object.system_user }} | -
{% trans 'Protocol' %}: | -{{ object.protocol }} | -
{% trans 'Login from' %}: | -{{ object.login_from_display }} | -
{% trans 'Remote addr' %}: | -{{ object.remote_addr }} | -
{% trans 'Date start' %}: | -{{ object.date_start }} | -
{% trans 'Date end' %}: | -{{ object.date_end }} | -
{% trans 'Replay session' %}: | -- - - - | -
{% trans 'Download replay' %}: | -- - - - | -
{% trans 'Terminate session' %}: | -- - - - | -
- | {% trans 'ID' %} | -{% trans 'User' %} | -{% trans 'Asset' %} | -{% trans 'System user' %} | -{% trans 'Remote addr' %} | -{% trans 'Protocol' %} | -{% trans 'Login from' %} | -{% trans 'Command' %} | -{% trans 'Date start' %} | -{% trans 'Duration' %} | -{% trans 'Action' %} | -
---|
{% trans 'Name' %}: | -{{ terminal.name }} | -
{% trans 'Remote addr' %}: | -{{ terminal.remote_addr }} | -
{% trans 'SSH port' %}: | -{{ terminal.ssh_port }} | -
{% trans 'Http port' %}: | -{{ terminal.http_port }} | -
{% trans 'Date created' %}: | -{{ terminal.date_created }} | -
{% trans 'Comment' %}: | -{{ asset.comment }} | -
-
-
-
- |
- {% trans 'Name' %} | -{% trans 'Addr' %} | -{#{% trans 'SSH port' %} | #} -{#{% trans 'Http port' %} | #} -{% trans 'Session' %} | -{% trans 'Active' %} | -{% trans 'Alive' %} | -{% trans 'Action' %} | -
---|
- - | -{% trans 'Title' %} | -{% trans 'User' %} | -{% trans 'Type' %} | -{% trans 'Status' %} | -{% trans 'Datetime' %} | -
---|
{% trans 'After installation, click the next step to enter the binding page (if installed, go to the next step directly).' %}
- {% trans 'Next' %} + {% trans 'Next' %} -